~ K A L I ~
UNAME : Linux web63.extendcp.co.uk 4.18.0-553.58.1.el8_10.x86_64 #1 SMP Wed Jun 25 06:37:46 EDT 2025 x86_64SERVER IP : 10.0.187.63 -________-
CLIENT IP : 216.73.216.199 MINI SHELL D ZAB '
Current File : //usr/share/enscript/hl/postscript.st |
/**
* Name: postscript
* Description: PostScript programming language.
*
* Author: Dave Hylands (DHylands@creo.com)
*/
state ps_string extends Highlight
{
/\\\\./ {
language_print ($0);
}
/[\)]/ {
language_print ($0);
return;
}
/[\(]/ {
/* Balanced ()'s in a string */
language_print ($0);
call (ps_string);
}
}
state ps_encoded_string extends Highlight
{
/[\>]/ {
language_print ($0);
return;
}
}
state postscript extends HighlightEntry
{
/* Comments. */
/%/ {
comment_face (true);
language_print ($0);
call (eat_one_line);
comment_face (false);
}
/* String constants. */
/[\(]/ {
string_face (true);
language_print ($0);
call (ps_string);
string_face (false);
}
/[\<]/ {
string_face (true);
language_print ($0);
call (ps_encoded_string);
string_face (false);
}
/* Keywords.
I built the keyword list using the following PostScript program
/str 128 string def
/outFile \(ps.txt)(w)file def
/proc
{
pop //str cvs outFile exch writestring outFile (\n) writestring
} bind def
systemdict /proc load forall
statusdict /proc load forall
errordict /proc load forall
I then ran:
sort ps.txt | uniq | fmt > ps.key
I then went through the list and removed << >> [ ] and obvious Harlequin
extensions. Many of the keywords remaining are not documented in the Red
Book but are implemented in some Adobe implementations (especially the
ones from statusdict). I decided to leave them in.
And since I don't have emacs (gasp), I wrote a program which takes the
ps.key file and generates the regular expression. This was faster than
trying to install emacs and figure out how it works.
Also note that PostScript doesn't require whitespace in front of keywords.
In particular, text can follow immediately after any of the following
characters:
> { } ) [ ] /
and can be followed immediately by the following:
< { } ( [ ] /
in addition to white space.
Contents of ps.key:
$error .error 11x17tray 12x24tray 15x24tray = == =print =scratch =string
FontDirectory GlobalFontDirectory ISOLatin1Encoding
Run SharedFontDirectory SpecialRun StandardEncoding
VMerror a2tray a3tray a4tray a5tray abs add aload
anchorsearch and appletalktype arc arcn arct arcto array ashow astore
atan authors awidthshow b5tray begin bind bitshift blackoverprint blink
broadsheettray buildtime bytesavailable cachestatus ceiling cexec
charpath checkpassword checkscreen clear cleardictstack clearinterrupt
cleartomark clip clippath closefile closepath closescc colorimage concat
concatmatrix configurationerror copy copypage cos count countdictstack
countexecstack counttomark cshow currentblackgeneration
currentcacheparams currentcmykcolor currentcolor currentcolorrendering
currentcolorrenderingintent currentcolorscreen currentcolorspace
currentcolortransfer currentdash currentdevparams currentdict
currentdlhooks currentfile currentflat currentfont currentglobal
currentgray currentgstate currenthalftone currenthalftonephase
currenthsbcolor currentinterceptcolorspace currentlinecap
currentlinejoin currentlinewidth currentmatrix currentmiterlimit
currentobjectformat currentoverprint currentpacking currentpagedevice
currentpoint currentrelativeneutrals currentreproductioncriteria
currentrgbcolor currentscreen currentseparationcolornames
currentseparationorder currentshared currentstrokeadjust
currentsystemparams currenttransfer currenttrapintent
currentundercolorremoval currentuserparams curveto cvi cvlit cvn cvr
cvrs cvs cvx daytime def defaultblackoverprint
defaulthandleerror defaultmatrix defaultmirrorprint defaultpagemargin
defaultpageparams defaultprocesscolors defaulttimeouts definefont
defineresource defineuserobject deletefile devdismount devforall
devformat deviceinfo devmount devstatus dict dictfull dictstack
dictstackoverflow dictstackunderflow disableinterrupt diskonline
diskstatus div dlclearcaches dostartpage dosysstart dtransform dup echo
eerom eescratch eexec enableinterrupt end endofjob eoclip eofill eq
erasepage errorbeep errordict exch exec execdict execform execstack
execstackoverflow execuserobject executeonly executive exit exp exposure
false file filekind filelinenumber filename filenameforall fileposition
fill filter findcharstrings findcolorrenderingintent findencoding
findfont findpgfont findresource flattenpath floor flush flushcache
flushfile for forall gcheck ge genericpaper get getinterval getknown
getsccconfig gettopfile gettoprealfile globaldict glyphshow grestore
grestoreall gsave gstate gt handleerror hardwareiomode
identmatrix idiv idlefonts idtransform if ifelse
image imagemask index ineofill infill initclip initgraphics initialized
initializedisk initmatrix instroke internaldict interrupt
interruptenabled inueofill inufill inustroke invalidaccess invalidexit
invalidfileaccess invalidfont invalidrestore invertmatrix ioerror
ismanualfeed itransform jobname jobsource jobstate jobstring jobtimeout
known kshow languagelevel lastmode le ledgertray legaltray length
lettertray limitcheck lineto listfilesinestack ln load
loadcurrentpagedevice loadsetpagedevice log loop lt makefont makepattern
manualfeedtimeout margins mark matchtemplate matrix maxlength
medialength mediasize mediawidth mirrorprint mod moveto mul ne neg
negativeprint newpath noaccess nocurrentpoint not null nulldevice
openscc or packedarray pagecount pagemargin pageparams pagestackorder
pagetype pathbbox pathforall pop print printererror printermessage
printername printerstatus printerupset printobject processcolors product
prompt pstack put putinterval quit ramsize rand rangecheck rcheck
rcurveto read readhexstring readline readonly readstring realtime
rectclip rectfill rectstroke renamefile repeat resetfile resetprinter
resolution resourceforall resourcestatus restore reversepath revision
rlineto rmoveto roll rootfont rotate round rrand run save scale
scalefont sccbatch sccfiles sccinteractive scheck screenforall search
selectfont sendctrld sendpcmd sendprinterstate serialnumber serverdict
setaccuratescreens setbbox setblackgeneration setblackoverprint setblink
setcachedevice setcachedevice2 setcachelimit setcacheparams setcharwidth
setcmykcolor setcolor setcolorrendering setcolorrenderingintent
setcolorscreen setcolorspace setcolortransfer setdash
setdefaultblackoverprint setdefaultmirrorprint setdefaultpagemargin
setdefaultpageparams setdefaultprocesscolors setdefaulttimeouts
setdevparams setdlhooks setdostartpage setdosysstart seteescratch
setexposure setfileposition setflat setfont setglobal setgray setgstate
sethalftone sethalftonephase sethardwareiomode sethsbcolor setidlefonts
setinterceptcolorspace setjobtimeout setlinecap setlinejoin setlinewidth
setmargins setmatrix setmirrorprint setmiterlimit setnegativeprint
setobjectformat setoverprint setpacking setpage setpagedevice
setpagemargin setpageparams setpageseen setpagestackorder setpagetype
setpassword setpattern setprintername setprocesscolors
setrelativeneutrals setreproductioncriteria setresolution setrgbcolor
setsccbatch setsccconfig setsccinteractive setscreen setshared
setsoftwareiomode setstderr setstdio setstrokeadjust setsystemparams
settransfer settrapintent setucacheparams setundercolorremoval
setuserdiskpercent setuserparams setvmthreshold shareddict show showpage
sin softwareiomode sqrt srand stack stackoverflow stackunderflow start
startjob startpage status statuscommand statusdict stop stopped store
string stringwidth stroke strokepath sub superstop superstopped
switchsetting syntaxerror system systemdict tabloidtray timeout token
transform translate true truncate type typecheck uappend ucache
ucachestatus ueofill ufill undef undefined undefinedfilename
undefinedresource undefinedresult undefinefont undefineresource
undefineuserobject unmatchedmark unregistered upath userdict
userdiskpercent usertime ustroke ustrokepath validatefont version
vmreclaim vmstatus waittimeout wcheck where widthshow write
writehexstring writeobject writestring xcheck xor xshow xyshow yshow
*/
/(\b|[\>\{\}\)\[\]\/])\
(\$error|\.error|1(1x17tray|2x24tray|5x24tray)|=(|=|print|s(cratch|tring))\
|FontDirectory|GlobalFontDirectory|ISOLatin1Encoding|Run|S\
(haredFontDirectory|pecialRun|tandardEncoding)|VMerror|a(2tray|3tray\
|4tray|5tray|bs|dd|load|n(chorsearch|d)|ppletalktype|r(c(|n|t(|o))|ray)|s\
(how|tore)|tan|uthors|widthshow)|b(5tray|egin|i(nd|tshift)|l\
(ackoverprint|ink)|roadsheettray|uildtime|ytesavailable)|c(achestatus|e\
(iling|xec)|h(arpath|eck(password|screen))|l(ear(|dictstack|interrupt\
|tomark)|ip(|path)|ose(file|path|scc))|o(lorimage|n(cat(|matrix)\
|figurationerror)|py(|page)|s|unt(|dictstack|execstack|tomark))|show|ur\
(rent(blackgeneration|c(acheparams|mykcolor|olor(|rendering(|intent)|s\
(creen|pace)|transfer))|d(ash|evparams|ict|lhooks)|f(ile|lat|ont)|g(lobal\
|ray|state)|h(alftone(|phase)|sbcolor)|interceptcolorspace|line(cap|join\
|width)|m(atrix|iterlimit)|o(bjectformat|verprint)|p(a(cking|gedevice)\
|oint)|r(e(lativeneutrals|productioncriteria)|gbcolor)|s(creen|eparation\
(colornames|order)|hared|trokeadjust|ystemparams)|tra(nsfer|pintent)|u\
(ndercolorremoval|serparams))|veto)|v(i|lit|n|r(|s)|s|x))|d(aytime|e(f(\
|ault(blackoverprint|handleerror|m(atrix|irrorprint)|p(age(margin\
|params)|rocesscolors)|timeouts)|ine(font|resource|userobject))|letefile|v\
(dismount|for(all|mat)|iceinfo|mount|status))|i(ct(|full|stack(|overflow\
|underflow))|s(ableinterrupt|k(online|status))|v)|lclearcaches|os(tartpage\
|ysstart)|transform|up)|e(cho|e(rom|scratch|xec)|n(ableinterrupt|d(\
|ofjob))|o(clip|fill)|q|r(asepage|ror(beep|dict))|x(ch|ec(|dict|form|stack\
(|overflow)|u(serobject|t(eonly|ive)))|it|p(|osure)))|f(alse|i(l(e(|kind\
|linenumber|name(|forall)|position)|l|ter)|nd(c(harstrings\
|olorrenderingintent)|encoding|font|pgfont|resource))|l(attenpath|oor\
|ush(|cache|file))|or(|all))|g(check|e(|nericpaper|t(|interval|known\
|sccconfig|top(file|realfile)))|l(obaldict|yphshow)|restore(|all)|s(ave\
|tate)|t)|ha(ndleerror|rdwareiomode)|i(d(entmatrix|iv|lefonts|transform)\
|f(|else)|mage(|mask)|n(dex|eofill|fill|it(clip|graphics|ialized(|isk)\
|matrix)|stroke|ter(naldict|rupt(|enabled))|u(eofill|fill|stroke)|v(alid\
(access|exit|f(ileaccess|ont)|restore)|ertmatrix))|oerror|smanualfeed\
|transform)|job(name|s(ource|t(ate|ring))|timeout)|k(nown|show)|l(a\
(nguagelevel|stmode)|e(|dgertray|galtray|ngth|ttertray)|i(mitcheck|neto\
|stfilesinestack)|n|o(ad(|currentpagedevice|setpagedevice)|g|op)|t)|m(a\
(ke(font|pattern)|nualfeedtimeout|r(gins|k)|t(chtemplate|rix)|xlength)\
|edia(length|size|width)|irrorprint|o(d|veto)|ul)|n(e(|g(|ativeprint)\
|wpath)|o(access|currentpoint|t)|ull(|device))|o(penscc|r)|p(a(ckedarray\
|ge(count|margin|params|stackorder|type)|th(bbox|forall))|op|r(int(|er\
(error|message|name|status|upset)|object)|o(cesscolors|duct|mpt))|stack\
|ut(|interval))|quit|r(a(msize|n(d|gecheck))|c(heck|urveto)|e(a(d(\
|hexstring|line|only|string)|ltime)|ct(clip|fill|stroke)|namefile|peat|s\
(et(file|printer)|o(lution|urce(forall|status))|tore)|v(ersepath|ision))\
|lineto|moveto|o(ll|otfont|tate|und)|rand|un)|s(ave|c(ale(|font)|c(batch\
|files|interactive)|heck|reenforall)|e(arch|lectfont|nd(ctrld|p(cmd\
|rinterstate))|r(ialnumber|verdict)|t(accuratescreens|b(box|l(ack\
(generation|overprint)|ink))|c(ache(device(|2)|limit|params)|harwidth\
|mykcolor|olor(|rendering(|intent)|s(creen|pace)|transfer))|d(ash|e(fault\
(blackoverprint|mirrorprint|p(age(margin|params)|rocesscolors)|timeouts)\
|vparams)|lhooks|os(tartpage|ysstart))|e(escratch|xposure)|f(ileposition\
|lat|ont)|g(lobal|ray|state)|h(a(lftone(|phase)|rdwareiomode)|sbcolor)|i\
(dlefonts|nterceptcolorspace)|jobtimeout|line(cap|join|width)|m(a(rgins\
|trix)|i(rrorprint|terlimit))|negativeprint|o(bjectformat|verprint)|p(a\
(cking|ge(|device|margin|params|s(een|tackorder)|type)|ssword|ttern)|r\
(intername|ocesscolors))|r(e(lativeneutrals|productioncriteria|solution)\
|gbcolor)|s(c(c(batch|config|interactive)|reen)|hared|oftwareiomode|t(d\
(err|io)|rokeadjust)|ystemparams)|tra(nsfer|pintent)|u(cacheparams\
|ndercolorremoval|ser(diskpercent|params))|vmthreshold))|h(areddict|ow(\
|page))|in|oftwareiomode|qrt|rand|t(a(ck(|overflow|underflow)|rt(|job\
|page)|tus(|command|dict))|o(p(|ped)|re)|r(ing(|width)|oke(|path)))|u(b\
|perstop(|ped))|witchsetting|y(ntaxerror|stem(|dict)))|t(abloidtray|imeout\
|oken|r(ans(form|late)|u(e|ncate))|ype(|check))|u(append|cache(|status)\
|eofill|fill|n(def(|ine(d(|filename|res(ource|ult))|font|resource\
|userobject))|matchedmark|registered)|path|s(er(di(ct|skpercent)|time)\
|troke(|path)))|v(alidatefont|ersion|m(reclaim|status))|w(aittimeout|check\
|here|idthshow|rite(|hexstring|object|string))|x(check|or|show|yshow)\
|yshow)\
(\b|[\<\{\}\(\[\]\/])/ {
keyword_face (true);
language_print ($0);
keyword_face (false);
}
}
/*
Local variables:
mode: c
End:
*/
Coded by KALI :v Greetz to DR HARD ../ kali.zbi@hotmail.com