dcl.vim (6067B)
1 " Vim syntax file 2 " Language: DCL (Digital Command Language - vms) 3 " Maintainer: This runtime file is looking for a new maintainer. 4 " Former Maintainer: Charles E. Campbell 5 " Last Change: Mar 26, 2019 6 " Version: 13 7 " Former URL: http://www.drchip.org/astronaut/vim/index.html#SYNTAX_DCL 8 9 " quit when a syntax file was already loaded 10 if exists("b:current_syntax") 11 finish 12 endif 13 14 if (v:version == 704 && has("patch-7.4.1142")) || v:version > 704 15 syn iskeyword $,@,48-57,_ 16 else 17 setlocal iskeyword=$,@,48-57,_ 18 endif 19 20 syn case ignore 21 syn keyword dclInstr accounting del[ete] gen[cat] mou[nt] run 22 syn keyword dclInstr all[ocate] dep[osit] gen[eral] ncp run[off] 23 syn keyword dclInstr ana[lyze] dia[gnose] gos[ub] ncs sca 24 syn keyword dclInstr app[end] dif[ferences] got[o] on sea[rch] 25 syn keyword dclInstr ass[ign] dir[ectory] hel[p] ope[n] set 26 syn keyword dclInstr att[ach] dis[able] ico[nv] pas[cal] sho[w] 27 syn keyword dclInstr aut[horize] dis[connect] if pas[sword] sor[t] 28 syn keyword dclInstr aut[ogen] dis[mount] ini[tialize] pat[ch] spa[wn] 29 syn keyword dclInstr bac[kup] dpm[l] inq[uire] pca sta[rt] 30 syn keyword dclInstr cal[l] dqs ins[tall] pho[ne] sto[p] 31 syn keyword dclInstr can[cel] dsr job pri[nt] sub[mit] 32 syn keyword dclInstr cc dst[graph] lat[cp] pro[duct] sub[routine] 33 syn keyword dclInstr clo[se] dtm lib[rary] psw[rap] swx[cr] 34 syn keyword dclInstr cms dum[p] lic[ense] pur[ge] syn[chronize] 35 syn keyword dclInstr con[nect] edi[t] lin[k] qde[lete] sys[gen] 36 syn keyword dclInstr con[tinue] ena[ble] lmc[p] qse[t] sys[man] 37 syn keyword dclInstr con[vert] end[subroutine] loc[ale] qsh[ow] tff 38 syn keyword dclInstr cop[y] eod log[in] rea[d] then 39 syn keyword dclInstr cre[ate] eoj log[out] rec[all] typ[e] 40 syn keyword dclInstr cxx exa[mine] lse[dit] rec[over] uil 41 syn keyword dclInstr cxx[l_help] exc[hange] mac[ro] ren[ame] unl[ock] 42 syn keyword dclInstr dea[llocate] exi[t] mai[l] rep[ly] ves[t] 43 syn keyword dclInstr dea[ssign] fdl mer[ge] req[uest] vie[w] 44 syn keyword dclInstr deb[ug] flo[wgraph] mes[sage] ret[urn] wai[t] 45 syn keyword dclInstr dec[k] fon[t] mms rms wri[te] 46 syn keyword dclInstr def[ine] for[tran] 47 48 syn keyword dclLexical f$context f$edit f$getjpi f$message f$setprv 49 syn keyword dclLexical f$csid f$element f$getqui f$mode f$string 50 syn keyword dclLexical f$cvsi f$environment f$getsyi f$parse f$time 51 syn keyword dclLexical f$cvtime f$extract f$identifier f$pid f$trnlnm 52 syn keyword dclLexical f$cvui f$fao f$integer f$privilege f$type 53 syn keyword dclLexical f$device f$file_attributes f$length f$process f$user 54 syn keyword dclLexical f$directory f$getdvi f$locate f$search f$verify 55 56 syn match dclMdfy "/\I\i*" nextgroup=dclMdfySet,dclMdfySetString 57 syn match dclMdfySet "=[^ \t"]*" contained 58 syn region dclMdfySet matchgroup=dclMdfyBrkt start="=\[" matchgroup=dclMdfyBrkt end="]" contains=dclMdfySep 59 syn region dclMdfySetString start='="' skip='""' end='"' contained 60 syn match dclMdfySep "[:,]" contained 61 62 " Numbers 63 syn match dclNumber "\d\+" 64 65 " Varname (mainly to prevent dclNumbers from being recognized when part of a dclVarname) 66 syn match dclVarname "\I\i*" 67 68 " Filenames (devices, paths) 69 syn match dclDevice "\I\i*\(\$\I\i*\)\=:[^=]"me=e-1 nextgroup=dclDirPath,dclFilename 70 syn match dclDirPath "\[\(\I\i*\.\)*\I\i*\]" contains=dclDirSep nextgroup=dclFilename 71 syn match dclFilename "\I\i*\$\(\I\i*\)\=\.\(\I\i*\)*\(;\d\+\)\=" contains=dclDirSep 72 syn match dclFilename "\I\i*\.\(\I\i*\)\=\(;\d\+\)\=" contains=dclDirSep contained 73 syn match dclDirSep "[[\].;]" 74 75 " Strings 76 syn region dclString start='"' skip='""' end='"' contains=@Spell 77 78 " $ stuff and comments 79 syn cluster dclCommentGroup contains=dclStart,dclTodo,@Spell 80 syn match dclStart "^\$" skipwhite nextgroup=dclExe 81 syn match dclContinue "-$" 82 syn match dclComment "^\$!.*$" contains=@dclCommentGroup 83 syn match dclExe "\I\i*" contained 84 syn keyword dclTodo contained COMBAK DEBUG FIXME TODO XXX 85 86 " Assignments and Operators 87 syn match dclAssign ":==\=" 88 syn match dclAssign "=" 89 syn match dclOper "--\|+\|\*\|/" 90 syn match dclLogOper "\.[a-zA-Z][a-zA-Z][a-zA-Z]\=\." contains=dclLogical,dclLogSep 91 syn keyword dclLogical contained and ge gts lt nes 92 syn keyword dclLogical contained eq ges le lts not 93 syn keyword dclLogical contained eqs gt les ne or 94 syn match dclLogSep "\." contained 95 96 " @command procedures 97 syn match dclCmdProcStart "@" nextgroup=dclCmdProc 98 syn match dclCmdProc "\I\i*\(\.\I\i*\)\=" contained 99 syn match dclCmdProc "\I\i*:" contained nextgroup=dclCmdDirPath,dclCmdProc 100 syn match dclCmdDirPath "\[\(\I\i*\.\)*\I\i*\]" contained nextgroup=delCmdProc 101 102 " labels 103 syn match dclGotoLabel "^\$\s*\I\i*:\s*$" contains=dclStart 104 105 " parameters 106 syn match dclParam "'\I[a-zA-Z0-9_$]*'\=" 107 108 syn region dclFuncList matchgroup=Delimiter start="(" matchgroup=Delimiter end=")" contains=ALLBUT,dclCmdDirPath,dclCmdProc,dclCmdProc,dclDirPath,dclFilename,dclFilename,dclMdfySet,dclMdfySetString,delCmdProc,dclExe,dclTodo 109 syn match dclError ")" 110 111 " Define the default highlighting. 112 if !exists("skip_dcl_syntax_inits") 113 114 hi def link dclLogOper dclError 115 hi def link dclLogical dclOper 116 hi def link dclLogSep dclSep 117 118 hi def link dclAssign Operator 119 hi def link dclCmdProc Special 120 hi def link dclCmdProcStart Operator 121 hi def link dclComment Comment 122 hi def link dclContinue Statement 123 hi def link dclDevice Identifier 124 hi def link dclDirPath Identifier 125 hi def link dclDirPath Identifier 126 hi def link dclDirSep Delimiter 127 hi def link dclError Error 128 hi def link dclExe Statement 129 hi def link dclFilename NONE 130 hi def link dclGotoLabel Label 131 hi def link dclInstr Statement 132 hi def link dclLexical Function 133 hi def link dclMdfy Type 134 hi def link dclMdfyBrkt Delimiter 135 hi def link dclMdfySep Delimiter 136 hi def link dclMdfySet Type 137 hi def link dclMdfySetString String 138 hi def link dclNumber Number 139 hi def link dclOper Operator 140 hi def link dclParam Special 141 hi def link dclSep Delimiter 142 hi def link dclStart Delimiter 143 hi def link dclString String 144 hi def link dclTodo Todo 145 146 endif 147 148 let b:current_syntax = "dcl" 149 150 " vim: ts=16