" Vim syntax file" Language: DCL (Digital Command Language - vms)" Maintainer: Dr. Charles E. Campbell, Jr. <NdrOchipS@PcampbellAfamily.Mbiz>" Last Change: Sep 11, 2006" Version: 6" URL: http://mysite.verizon.net/astronaut/vim/index.html#vimlinks_syntax" For version 5.x: Clear all syntax items" For version 6.x: Quit when a syntax file was already loadedif version < 600 syntax clearelseif exists("b:current_syntax") finishendifif version < 600 set iskeyword=$,@,48-57,_else setlocal iskeyword=$,@,48-57,_endifsyn case ignoresyn keyword dclInstr accounting del[ete] gen[cat] mou[nt] runsyn keyword dclInstr all[ocate] dep[osit] gen[eral] ncp run[off]syn keyword dclInstr ana[lyze] dia[gnose] gos[ub] ncs scasyn keyword dclInstr app[end] dif[ferences] got[o] on sea[rch]syn keyword dclInstr ass[ign] dir[ectory] hel[p] ope[n] setsyn keyword dclInstr att[ach] dis[able] ico[nv] pas[cal] sho[w]syn keyword dclInstr aut[horize] dis[connect] if pas[sword] sor[t]syn keyword dclInstr aut[ogen] dis[mount] ini[tialize] pat[ch] spa[wn]syn keyword dclInstr bac[kup] dpm[l] inq[uire] pca sta[rt]syn keyword dclInstr cal[l] dqs ins[tall] pho[ne] sto[p]syn keyword dclInstr can[cel] dsr job pri[nt] sub[mit]syn keyword dclInstr cc dst[graph] lat[cp] pro[duct] sub[routine]syn keyword dclInstr clo[se] dtm lib[rary] psw[rap] swx[cr]syn keyword dclInstr cms dum[p] lic[ense] pur[ge] syn[chronize]syn keyword dclInstr con[nect] edi[t] lin[k] qde[lete] sys[gen]syn keyword dclInstr con[tinue] ena[ble] lmc[p] qse[t] sys[man]syn keyword dclInstr con[vert] end[subroutine] loc[ale] qsh[ow] tffsyn keyword dclInstr cop[y] eod log[in] rea[d] thensyn keyword dclInstr cre[ate] eoj log[out] rec[all] typ[e]syn keyword dclInstr cxx exa[mine] lse[dit] rec[over] uilsyn keyword dclInstr cxx[l_help] exc[hange] mac[ro] ren[ame] unl[ock]syn keyword dclInstr dea[llocate] exi[t] mai[l] rep[ly] ves[t]syn keyword dclInstr dea[ssign] fdl mer[ge] req[uest] vie[w]syn keyword dclInstr deb[ug] flo[wgraph] mes[sage] ret[urn] wai[t]syn keyword dclInstr dec[k] fon[t] mms rms wri[te]syn keyword dclInstr def[ine] for[tran]syn keyword dclLexical f$context f$edit f$getjpi f$message f$setprvsyn keyword dclLexical f$csid f$element f$getqui f$mode f$stringsyn keyword dclLexical f$cvsi f$environment f$getsyi f$parse f$timesyn keyword dclLexical f$cvtime f$extract f$identifier f$pid f$trnlnmsyn keyword dclLexical f$cvui f$fao f$integer f$privilege f$typesyn keyword dclLexical f$device f$file_attributes f$length f$process f$usersyn keyword dclLexical f$directory f$getdvi f$locate f$search f$verifysyn match dclMdfy "/\I\i*" nextgroup=dclMdfySet,dclMdfySetStringsyn match dclMdfySet "=[^ \t"]*" containedsyn region dclMdfySet matchgroup=dclMdfyBrkt start="=\[" matchgroup=dclMdfyBrkt end="]" contains=dclMdfySepsyn region dclMdfySetString start='="' skip='""' end='"' containedsyn match dclMdfySep "[:,]" contained" Numberssyn match dclNumber "\d\+"" Varname (mainly to prevent dclNumbers from being recognized when part of a dclVarname)syn match dclVarname "\I\i*"" Filenames (devices, paths)syn match dclDevice "\I\i*\(\$\I\i*\)\=:[^=]"me=e-1 nextgroup=dclDirPath,dclFilenamesyn match dclDirPath "\[\(\I\i*\.\)*\I\i*\]" contains=dclDirSep nextgroup=dclFilenamesyn match dclFilename "\I\i*\$\(\I\i*\)\=\.\(\I\i*\)*\(;\d\+\)\=" contains=dclDirSepsyn match dclFilename "\I\i*\.\(\I\i*\)\=\(;\d\+\)\=" contains=dclDirSep containedsyn match dclDirSep "[[\].;]"" Stringssyn region dclString start='"' skip='""' end='"' contains=@Spell" $ stuff and commentssyn cluster dclCommentGroup contains=dclStart,dclTodo,@Spellsyn match dclStart "^\$" skipwhite nextgroup=dclExesyn match dclContinue "-$"syn match dclComment "^\$!.*$" contains=@dclCommentGroupsyn match dclExe "\I\i*" containedsyn keyword dclTodo contained COMBAK DEBUG FIXME TODO XXX" Assignments and Operatorssyn match dclAssign ":==\="syn match dclAssign "="syn match dclOper "--\|+\|\*\|/"syn match dclLogOper "\.[a-zA-Z][a-zA-Z][a-zA-Z]\=\." contains=dclLogical,dclLogSepsyn keyword dclLogical contained and ge gts lt nessyn keyword dclLogical contained eq ges le lts notsyn keyword dclLogical contained eqs gt les ne orsyn match dclLogSep "\." contained" @command proceduressyn match dclCmdProcStart "@" nextgroup=dclCmdProcsyn match dclCmdProc "\I\i*\(\.\I\i*\)\=" containedsyn match dclCmdProc "\I\i*:" contained nextgroup=dclCmdDirPath,dclCmdProcsyn match dclCmdDirPath "\[\(\I\i*\.\)*\I\i*\]" contained nextgroup=delCmdProc" labelssyn match dclGotoLabel "^\$\s*\I\i*:\s*$" contains=dclStart" parameterssyn match dclParam "'\I[a-zA-Z0-9_$]*'\="" () matching (the clusters are commented out until a vim/vms comes out for v5.2+)"syn cluster dclNextGroups contains=dclCmdDirPath,dclCmdProc,dclCmdProc,dclDirPath,dclFilename,dclFilename,dclMdfySet,dclMdfySetString,delCmdProc,dclExe,dclTodo"syn region dclFuncList matchgroup=Delimiter start="(" matchgroup=Delimiter end=")" contains=ALLBUT,@dclNextGroupssyn region dclFuncList matchgroup=Delimiter start="(" matchgroup=Delimiter end=")" contains=ALLBUT,dclCmdDirPath,dclCmdProc,dclCmdProc,dclDirPath,dclFilename,dclFilename,dclMdfySet,dclMdfySetString,delCmdProc,dclExe,dclTodosyn match dclError ")"" 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 yetif version >= 508 || !exists("did_dcl_syntax_inits") if version < 508 let did_dcl_syntax_inits = 1 command -nargs=+ HiLink hi link <args> else command -nargs=+ HiLink hi def link <args> endif HiLink dclLogOper dclError HiLink dclLogical dclOper HiLink dclLogSep dclSep HiLink dclAssign Operator HiLink dclCmdProc Special HiLink dclCmdProcStart Operator HiLink dclComment Comment HiLink dclContinue Statement HiLink dclDevice Identifier HiLink dclDirPath Identifier HiLink dclDirPath Identifier HiLink dclDirSep Delimiter HiLink dclError Error HiLink dclExe Statement HiLink dclFilename NONE HiLink dclGotoLabel Label HiLink dclInstr Statement HiLink dclLexical Function HiLink dclMdfy Type HiLink dclMdfyBrkt Delimiter HiLink dclMdfySep Delimiter HiLink dclMdfySet Type HiLink dclMdfySetString String HiLink dclNumber Number HiLink dclOper Operator HiLink dclParam Special HiLink dclSep Delimiter HiLink dclStart Delimiter HiLink dclString String HiLink dclTodo Todo delcommand HiLinkendiflet b:current_syntax = "dcl"" vim: ts=16
" Vim syntax file
" Language: DCL (Digital Command Language - vms)
" Maintainer: Dr. Charles E. Campbell, Jr. <NdrOchipS@PcampbellAfamily.Mbiz>
" Last Change: Sep 11, 2006
" Version: 6
" URL: http://mysite.verizon.net/astronaut/vim/index.html#vimlinks_syntax
" 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
if version < 600
set iskeyword=$,@,48-57,_
else
setlocal iskeyword=$,@,48-57,_
endif
syn case ignore
syn keyword dclInstr accounting del[ete] gen[cat] mou[nt] run
syn keyword dclInstr all[ocate] dep[osit] gen[eral] ncp run[off]
syn keyword dclInstr ana[lyze] dia[gnose] gos[ub] ncs sca
syn keyword dclInstr app[end] dif[ferences] got[o] on sea[rch]
syn keyword dclInstr ass[ign] dir[ectory] hel[p] ope[n] set
syn keyword dclInstr att[ach] dis[able] ico[nv] pas[cal] sho[w]
syn keyword dclInstr aut[horize] dis[connect] if pas[sword] sor[t]
syn keyword dclInstr aut[ogen] dis[mount] ini[tialize] pat[ch] spa[wn]
syn keyword dclInstr bac[kup] dpm[l] inq[uire] pca sta[rt]
syn keyword dclInstr cal[l] dqs ins[tall] pho[ne] sto[p]
syn keyword dclInstr can[cel] dsr job pri[nt] sub[mit]
syn keyword dclInstr cc dst[graph] lat[cp] pro[duct] sub[routine]
syn keyword dclInstr clo[se] dtm lib[rary] psw[rap] swx[cr]
syn keyword dclInstr cms dum[p] lic[ense] pur[ge] syn[chronize]
syn keyword dclInstr con[nect] edi[t] lin[k] qde[lete] sys[gen]
syn keyword dclInstr con[tinue] ena[ble] lmc[p] qse[t] sys[man]
syn keyword dclInstr con[vert] end[subroutine] loc[ale] qsh[ow] tff
syn keyword dclInstr cop[y] eod log[in] rea[d] then
syn keyword dclInstr cre[ate] eoj log[out] rec[all] typ[e]
syn keyword dclInstr cxx exa[mine] lse[dit] rec[over] uil
syn keyword dclInstr cxx[l_help] exc[hange] mac[ro] ren[ame] unl[ock]
syn keyword dclInstr dea[llocate] exi[t] mai[l] rep[ly] ves[t]
syn keyword dclInstr dea[ssign] fdl mer[ge] req[uest] vie[w]
syn keyword dclInstr deb[ug] flo[wgraph] mes[sage] ret[urn] wai[t]
syn keyword dclInstr dec[k] fon[t] mms rms wri[te]
syn keyword dclInstr def[ine] for[tran]
syn keyword dclLexical f$context f$edit f$getjpi f$message f$setprv
syn keyword dclLexical f$csid f$element f$getqui f$mode f$string
syn keyword dclLexical f$cvsi f$environment f$getsyi f$parse f$time
syn keyword dclLexical f$cvtime f$extract f$identifier f$pid f$trnlnm
syn keyword dclLexical f$cvui f$fao f$integer f$privilege f$type
syn keyword dclLexical f$device f$file_attributes f$length f$process f$user
syn keyword dclLexical f$directory f$getdvi f$locate f$search f$verify
syn match dclMdfy "/\I\i*" nextgroup=dclMdfySet,dclMdfySetString
syn match dclMdfySet "=[^ \t"]*" contained
syn region dclMdfySet matchgroup=dclMdfyBrkt start="=\[" matchgroup=dclMdfyBrkt end="]" contains=dclMdfySep
syn region dclMdfySetString start='="' skip='""' end='"' contained
syn match dclMdfySep "[:,]" contained
" Numbers
syn match dclNumber "\d\+"
" Varname (mainly to prevent dclNumbers from being recognized when part of a dclVarname)
syn match dclVarname "\I\i*"
" Filenames (devices, paths)
syn match dclDevice "\I\i*\(\$\I\i*\)\=:[^=]"me=e-1 nextgroup=dclDirPath,dclFilename
syn match dclDirPath "\[\(\I\i*\.\)*\I\i*\]" contains=dclDirSep nextgroup=dclFilename
syn match dclFilename "\I\i*\$\(\I\i*\)\=\.\(\I\i*\)*\(;\d\+\)\=" contains=dclDirSep
syn match dclFilename "\I\i*\.\(\I\i*\)\=\(;\d\+\)\=" contains=dclDirSep contained
syn match dclDirSep "[[\].;]"
" Strings
syn region dclString start='"' skip='""' end='"' contains=@Spell
" $ stuff and comments
syn cluster dclCommentGroup contains=dclStart,dclTodo,@Spell
syn match dclStart "^\$" skipwhite nextgroup=dclExe
syn match dclContinue "-$"
syn match dclComment "^\$!.*$" contains=@dclCommentGroup
syn match dclExe "\I\i*" contained
syn keyword dclTodo contained COMBAK DEBUG FIXME TODO XXX
" Assignments and Operators
syn match dclAssign ":==\="
syn match dclAssign "="
syn match dclOper "--\|+\|\*\|/"
syn match dclLogOper "\.[a-zA-Z][a-zA-Z][a-zA-Z]\=\." contains=dclLogical,dclLogSep
syn keyword dclLogical contained and ge gts lt nes
syn keyword dclLogical contained eq ges le lts not
syn keyword dclLogical contained eqs gt les ne or
syn match dclLogSep "\." contained
" @command procedures
syn match dclCmdProcStart "@" nextgroup=dclCmdProc
syn match dclCmdProc "\I\i*\(\.\I\i*\)\=" contained
syn match dclCmdProc "\I\i*:" contained nextgroup=dclCmdDirPath,dclCmdProc
syn match dclCmdDirPath "\[\(\I\i*\.\)*\I\i*\]" contained nextgroup=delCmdProc
" labels
syn match dclGotoLabel "^\$\s*\I\i*:\s*$" contains=dclStart
" parameters
syn match dclParam "'\I[a-zA-Z0-9_$]*'\="
" () matching (the clusters are commented out until a vim/vms comes out for v5.2+)
"syn cluster dclNextGroups contains=dclCmdDirPath,dclCmdProc,dclCmdProc,dclDirPath,dclFilename,dclFilename,dclMdfySet,dclMdfySetString,delCmdProc,dclExe,dclTodo
"syn region dclFuncList matchgroup=Delimiter start="(" matchgroup=Delimiter end=")" contains=ALLBUT,@dclNextGroups
syn region dclFuncList matchgroup=Delimiter start="(" matchgroup=Delimiter end=")" contains=ALLBUT,dclCmdDirPath,dclCmdProc,dclCmdProc,dclDirPath,dclFilename,dclFilename,dclMdfySet,dclMdfySetString,delCmdProc,dclExe,dclTodo
syn match dclError ")"
" 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_dcl_syntax_inits")
if version < 508
let did_dcl_syntax_inits = 1
command -nargs=+ HiLink hi link <args>
else
command -nargs=+ HiLink hi def link <args>
endif
HiLink dclLogOper dclError
HiLink dclLogical dclOper
HiLink dclLogSep dclSep
HiLink dclAssign Operator
HiLink dclCmdProc Special
HiLink dclCmdProcStart Operator
HiLink dclComment Comment
HiLink dclContinue Statement
HiLink dclDevice Identifier
HiLink dclDirPath Identifier
HiLink dclDirPath Identifier
HiLink dclDirSep Delimiter
HiLink dclError Error
HiLink dclExe Statement
HiLink dclFilename NONE
HiLink dclGotoLabel Label
HiLink dclInstr Statement
HiLink dclLexical Function
HiLink dclMdfy Type
HiLink dclMdfyBrkt Delimiter
HiLink dclMdfySep Delimiter
HiLink dclMdfySet Type
HiLink dclMdfySetString String
HiLink dclNumber Number
HiLink dclOper Operator
HiLink dclParam Special
HiLink dclSep Delimiter
HiLink dclStart Delimiter
HiLink dclString String
HiLink dclTodo Todo
delcommand HiLink
endif
let b:current_syntax = "dcl"
" vim: ts=16