xref: /vim-8.2.3635/runtime/syntax/dcl.vim (revision 1d9215b9)
1071d4279SBram Moolenaar" Vim syntax file
2071d4279SBram Moolenaar" Language:	DCL (Digital Command Language - vms)
3*1d9215b9SBram Moolenaar" Maintainer:	Charles E. Campbell <[email protected]>
4723dd946SBram Moolenaar" Last Change:	Mar 26, 2019
5*1d9215b9SBram Moolenaar" Version:	13
6e2719096SBram Moolenaar" URL:	http://www.drchip.org/astronaut/vim/index.html#SYNTAX_DCL
7071d4279SBram Moolenaar
889bcfda6SBram Moolenaar" quit when a syntax file was already loaded
989bcfda6SBram Moolenaarif exists("b:current_syntax")
10071d4279SBram Moolenaar  finish
11071d4279SBram Moolenaarendif
12071d4279SBram Moolenaar
13723dd946SBram Moolenaarif (v:version == 704 && has("patch-7.4.1142")) || v:version > 704
1413d5aeefSBram Moolenaar syn iskeyword $,@,48-57,_
15723dd946SBram Moolenaarelse
16723dd946SBram Moolenaar setlocal iskeyword=$,@,48-57,_
17071d4279SBram Moolenaarendif
18071d4279SBram Moolenaar
19071d4279SBram Moolenaarsyn case ignore
20071d4279SBram Moolenaarsyn keyword dclInstr	accounting	del[ete]	gen[cat]	mou[nt]	run
21071d4279SBram Moolenaarsyn keyword dclInstr	all[ocate]	dep[osit]	gen[eral]	ncp	run[off]
22071d4279SBram Moolenaarsyn keyword dclInstr	ana[lyze]	dia[gnose]	gos[ub]	ncs	sca
23071d4279SBram Moolenaarsyn keyword dclInstr	app[end]	dif[ferences]	got[o]	on	sea[rch]
24071d4279SBram Moolenaarsyn keyword dclInstr	ass[ign]	dir[ectory]	hel[p]	ope[n]	set
25071d4279SBram Moolenaarsyn keyword dclInstr	att[ach]	dis[able]	ico[nv]	pas[cal]	sho[w]
26071d4279SBram Moolenaarsyn keyword dclInstr	aut[horize]	dis[connect]	if	pas[sword]	sor[t]
27071d4279SBram Moolenaarsyn keyword dclInstr	aut[ogen]	dis[mount]	ini[tialize]	pat[ch]	spa[wn]
28071d4279SBram Moolenaarsyn keyword dclInstr	bac[kup]	dpm[l]	inq[uire]	pca	sta[rt]
29071d4279SBram Moolenaarsyn keyword dclInstr	cal[l]	dqs	ins[tall]	pho[ne]	sto[p]
30071d4279SBram Moolenaarsyn keyword dclInstr	can[cel]	dsr	job	pri[nt]	sub[mit]
31071d4279SBram Moolenaarsyn keyword dclInstr	cc	dst[graph]	lat[cp]	pro[duct]	sub[routine]
32071d4279SBram Moolenaarsyn keyword dclInstr	clo[se]	dtm	lib[rary]	psw[rap]	swx[cr]
33071d4279SBram Moolenaarsyn keyword dclInstr	cms	dum[p]	lic[ense]	pur[ge]	syn[chronize]
34071d4279SBram Moolenaarsyn keyword dclInstr	con[nect]	edi[t]	lin[k]	qde[lete]	sys[gen]
35071d4279SBram Moolenaarsyn keyword dclInstr	con[tinue]	ena[ble]	lmc[p]	qse[t]	sys[man]
36071d4279SBram Moolenaarsyn keyword dclInstr	con[vert]	end[subroutine]	loc[ale]	qsh[ow]	tff
37071d4279SBram Moolenaarsyn keyword dclInstr	cop[y]	eod	log[in]	rea[d]	then
38071d4279SBram Moolenaarsyn keyword dclInstr	cre[ate]	eoj	log[out]	rec[all]	typ[e]
39071d4279SBram Moolenaarsyn keyword dclInstr	cxx	exa[mine]	lse[dit]	rec[over]	uil
40071d4279SBram Moolenaarsyn keyword dclInstr	cxx[l_help]	exc[hange]	mac[ro]	ren[ame]	unl[ock]
41071d4279SBram Moolenaarsyn keyword dclInstr	dea[llocate]	exi[t]	mai[l]	rep[ly]	ves[t]
42071d4279SBram Moolenaarsyn keyword dclInstr	dea[ssign]	fdl	mer[ge]	req[uest]	vie[w]
43071d4279SBram Moolenaarsyn keyword dclInstr	deb[ug]	flo[wgraph]	mes[sage]	ret[urn]	wai[t]
44071d4279SBram Moolenaarsyn keyword dclInstr	dec[k]	fon[t]	mms	rms	wri[te]
45071d4279SBram Moolenaarsyn keyword dclInstr	def[ine]	for[tran]
46071d4279SBram Moolenaar
47071d4279SBram Moolenaarsyn keyword dclLexical	f$context	f$edit	  f$getjpi	f$message	f$setprv
48071d4279SBram Moolenaarsyn keyword dclLexical	f$csid	f$element	  f$getqui	f$mode	f$string
49071d4279SBram Moolenaarsyn keyword dclLexical	f$cvsi	f$environment	  f$getsyi	f$parse	f$time
50071d4279SBram Moolenaarsyn keyword dclLexical	f$cvtime	f$extract	  f$identifier	f$pid	f$trnlnm
51071d4279SBram Moolenaarsyn keyword dclLexical	f$cvui	f$fao	  f$integer	f$privilege	f$type
52071d4279SBram Moolenaarsyn keyword dclLexical	f$device	f$file_attributes f$length	f$process	f$user
53071d4279SBram Moolenaarsyn keyword dclLexical	f$directory	f$getdvi	  f$locate	f$search	f$verify
54071d4279SBram Moolenaar
55071d4279SBram Moolenaarsyn match   dclMdfy	"/\I\i*"	nextgroup=dclMdfySet,dclMdfySetString
56071d4279SBram Moolenaarsyn match   dclMdfySet	"=[^ \t"]*"	contained
57071d4279SBram Moolenaarsyn region  dclMdfySet	matchgroup=dclMdfyBrkt start="=\[" matchgroup=dclMdfyBrkt end="]"	contains=dclMdfySep
58071d4279SBram Moolenaarsyn region  dclMdfySetString	start='="'	skip='""'	end='"'	contained
59071d4279SBram Moolenaarsyn match   dclMdfySep	"[:,]"	contained
60071d4279SBram Moolenaar
61071d4279SBram Moolenaar" Numbers
62071d4279SBram Moolenaarsyn match   dclNumber	"\d\+"
63071d4279SBram Moolenaar
64071d4279SBram Moolenaar" Varname (mainly to prevent dclNumbers from being recognized when part of a dclVarname)
65071d4279SBram Moolenaarsyn match   dclVarname	"\I\i*"
66071d4279SBram Moolenaar
67071d4279SBram Moolenaar" Filenames (devices, paths)
68071d4279SBram Moolenaarsyn match   dclDevice	"\I\i*\(\$\I\i*\)\=:[^=]"me=e-1		nextgroup=dclDirPath,dclFilename
69071d4279SBram Moolenaarsyn match   dclDirPath	"\[\(\I\i*\.\)*\I\i*\]"		contains=dclDirSep	nextgroup=dclFilename
70071d4279SBram Moolenaarsyn match   dclFilename	"\I\i*\$\(\I\i*\)\=\.\(\I\i*\)*\(;\d\+\)\="	contains=dclDirSep
71071d4279SBram Moolenaarsyn match   dclFilename	"\I\i*\.\(\I\i*\)\=\(;\d\+\)\="	contains=dclDirSep	contained
72071d4279SBram Moolenaarsyn match   dclDirSep	"[[\].;]"
73071d4279SBram Moolenaar
74071d4279SBram Moolenaar" Strings
759964e468SBram Moolenaarsyn region  dclString	start='"'	skip='""'	end='"'	contains=@Spell
76071d4279SBram Moolenaar
77071d4279SBram Moolenaar" $ stuff and comments
78071d4279SBram Moolenaarsyn cluster dclCommentGroup	contains=dclStart,dclTodo,@Spell
79071d4279SBram Moolenaarsyn match   dclStart	"^\$"	skipwhite nextgroup=dclExe
80071d4279SBram Moolenaarsyn match   dclContinue	"-$"
81071d4279SBram Moolenaarsyn match   dclComment	"^\$!.*$"	contains=@dclCommentGroup
82071d4279SBram Moolenaarsyn match   dclExe	"\I\i*"	contained
8318144c84SBram Moolenaarsyn keyword dclTodo contained	COMBAK	DEBUG	FIXME	TODO	XXX
84071d4279SBram Moolenaar
85071d4279SBram Moolenaar" Assignments and Operators
86071d4279SBram Moolenaarsyn match   dclAssign	":==\="
87071d4279SBram Moolenaarsyn match   dclAssign	"="
88071d4279SBram Moolenaarsyn match   dclOper	"--\|+\|\*\|/"
89071d4279SBram Moolenaarsyn match   dclLogOper	"\.[a-zA-Z][a-zA-Z][a-zA-Z]\=\." contains=dclLogical,dclLogSep
90071d4279SBram Moolenaarsyn keyword dclLogical contained	and	ge	gts	lt	nes
91071d4279SBram Moolenaarsyn keyword dclLogical contained	eq	ges	le	lts	not
92071d4279SBram Moolenaarsyn keyword dclLogical contained	eqs	gt	les	ne	or
93071d4279SBram Moolenaarsyn match   dclLogSep	"\."		contained
94071d4279SBram Moolenaar
95071d4279SBram Moolenaar" @command procedures
96071d4279SBram Moolenaarsyn match   dclCmdProcStart	"@"			nextgroup=dclCmdProc
97071d4279SBram Moolenaarsyn match   dclCmdProc	"\I\i*\(\.\I\i*\)\="	contained
98071d4279SBram Moolenaarsyn match   dclCmdProc	"\I\i*:"		contained	nextgroup=dclCmdDirPath,dclCmdProc
99071d4279SBram Moolenaarsyn match   dclCmdDirPath	"\[\(\I\i*\.\)*\I\i*\]"	contained	nextgroup=delCmdProc
100071d4279SBram Moolenaar
101071d4279SBram Moolenaar" labels
102071d4279SBram Moolenaarsyn match   dclGotoLabel	"^\$\s*\I\i*:\s*$"	contains=dclStart
103071d4279SBram Moolenaar
104071d4279SBram Moolenaar" parameters
105071d4279SBram Moolenaarsyn match   dclParam	"'\I[a-zA-Z0-9_$]*'\="
106071d4279SBram Moolenaar
107071d4279SBram Moolenaar" () matching (the clusters are commented out until a vim/vms comes out for v5.2+)
108071d4279SBram Moolenaar"syn cluster dclNextGroups	contains=dclCmdDirPath,dclCmdProc,dclCmdProc,dclDirPath,dclFilename,dclFilename,dclMdfySet,dclMdfySetString,delCmdProc,dclExe,dclTodo
109071d4279SBram Moolenaar"syn region  dclFuncList	matchgroup=Delimiter start="(" matchgroup=Delimiter end=")" contains=ALLBUT,@dclNextGroups
110071d4279SBram Moolenaarsyn region  dclFuncList	matchgroup=Delimiter start="(" matchgroup=Delimiter end=")" contains=ALLBUT,dclCmdDirPath,dclCmdProc,dclCmdProc,dclDirPath,dclFilename,dclFilename,dclMdfySet,dclMdfySetString,delCmdProc,dclExe,dclTodo
111071d4279SBram Moolenaarsyn match   dclError	")"
112071d4279SBram Moolenaar
113071d4279SBram Moolenaar" Define the default highlighting.
114f37506f6SBram Moolenaarif !exists("skip_dcl_syntax_inits")
115071d4279SBram Moolenaar
116f37506f6SBram Moolenaar hi def link dclLogOper	dclError
117f37506f6SBram Moolenaar hi def link dclLogical	dclOper
118f37506f6SBram Moolenaar hi def link dclLogSep	dclSep
119071d4279SBram Moolenaar
120f37506f6SBram Moolenaar hi def link dclAssign	Operator
121f37506f6SBram Moolenaar hi def link dclCmdProc	Special
122f37506f6SBram Moolenaar hi def link dclCmdProcStart	Operator
123f37506f6SBram Moolenaar hi def link dclComment	Comment
124f37506f6SBram Moolenaar hi def link dclContinue	Statement
125f37506f6SBram Moolenaar hi def link dclDevice	Identifier
126f37506f6SBram Moolenaar hi def link dclDirPath	Identifier
127f37506f6SBram Moolenaar hi def link dclDirPath	Identifier
128f37506f6SBram Moolenaar hi def link dclDirSep	Delimiter
129f37506f6SBram Moolenaar hi def link dclError	Error
130f37506f6SBram Moolenaar hi def link dclExe		Statement
131f37506f6SBram Moolenaar hi def link dclFilename	NONE
132f37506f6SBram Moolenaar hi def link dclGotoLabel	Label
133f37506f6SBram Moolenaar hi def link dclInstr	Statement
134f37506f6SBram Moolenaar hi def link dclLexical	Function
135f37506f6SBram Moolenaar hi def link dclMdfy	Type
136f37506f6SBram Moolenaar hi def link dclMdfyBrkt	Delimiter
137f37506f6SBram Moolenaar hi def link dclMdfySep	Delimiter
138f37506f6SBram Moolenaar hi def link dclMdfySet	Type
139f37506f6SBram Moolenaar hi def link dclMdfySetString	String
140f37506f6SBram Moolenaar hi def link dclNumber	Number
141f37506f6SBram Moolenaar hi def link dclOper	Operator
142f37506f6SBram Moolenaar hi def link dclParam	Special
143f37506f6SBram Moolenaar hi def link dclSep		Delimiter
144f37506f6SBram Moolenaar hi def link dclStart	Delimiter
145f37506f6SBram Moolenaar hi def link dclString	String
146f37506f6SBram Moolenaar hi def link dclTodo	Todo
147071d4279SBram Moolenaar
148f37506f6SBram Moolenaarendif
149071d4279SBram Moolenaar
150071d4279SBram Moolenaarlet b:current_syntax = "dcl"
151071d4279SBram Moolenaar
152071d4279SBram Moolenaar" vim: ts=16
153