1" Vim syntax file
2" Language:	xmath (a simulation tool)
3" Maintainer:	Charles E. Campbell <NcampObell@SdrPchip.AorgM-NOSPAM>
4" Last Change:	Aug 31, 2016
5" Version:	10
6" URL:	http://www.drchip.org/astronaut/vim/index.html#SYNTAX_XMATH
7
8" For version 5.x: Clear all syntax items
9" For version 6.x: Quit when a syntax file was already loaded
10if exists("b:current_syntax")
11  finish
12endif
13
14" parenthesis sanity checker
15syn region xmathZone	matchgroup=Delimiter start="(" matchgroup=Delimiter end=")" transparent contains=ALLBUT,xmathError,xmathBraceError,xmathCurlyError
16syn region xmathZone	matchgroup=Delimiter start="{" matchgroup=Delimiter end="}" transparent contains=ALLBUT,xmathError,xmathBraceError,xmathParenError
17syn region xmathZone	matchgroup=Delimiter start="\[" matchgroup=Delimiter end="]" transparent contains=ALLBUT,xmathError,xmathCurlyError,xmathParenError
18syn match  xmathError	"[)\]}]"
19syn match  xmathBraceError	"[)}]"	contained
20syn match  xmathCurlyError	"[)\]]"	contained
21syn match  xmathParenError	"[\]}]"	contained
22syn match  xmathComma	"[,;:]"
23syn match  xmathComma	"\.\.\.$"
24
25" A bunch of useful xmath keywords
26syn case ignore
27syn keyword xmathFuncCmd	function	endfunction	command	endcommand
28syn keyword xmathStatement	abort	beep	debug	default	define
29syn keyword xmathStatement	execute	exit	pause	return	undefine
30syn keyword xmathConditional	if	else	elseif	endif
31syn keyword xmathRepeat	while	for	endwhile	endfor
32syn keyword xmathCmd	anigraph	deletedatastore	keep	renamedatastore
33syn keyword xmathCmd	autocode	deletestd	linkhyper	renamestd
34syn keyword xmathCmd	build	deletesuperblock	linksim	renamesuperblock
35syn keyword xmathCmd	comment	deletetransition	listusertype	save
36syn keyword xmathCmd	copydatastore	deleteusertype	load	sbadisplay
37syn keyword xmathCmd	copystd	detailmodel	lock	set
38syn keyword xmathCmd	copysuperblock	display	minmax_display	setsbdefault
39syn keyword xmathCmd	createblock	documentit	modifyblock	show
40syn keyword xmathCmd	createbubble	editcatalog	modifybubble	showlicense
41syn keyword xmathCmd	createconnection	erase	modifystd	showsbdefault
42syn keyword xmathCmd	creatertf	expandsuperbubble	modifysuperblock	stop
43syn keyword xmathCmd	createstd	for	modifytransition	stopcosim
44syn keyword xmathCmd	createsuperblock	go	modifyusertype	syntax
45syn keyword xmathCmd	createsuperbubble	goto	new	unalias
46syn keyword xmathCmd	createtransition	hardcopy	next	unlock
47syn keyword xmathCmd	createusertype	help	polargraph	usertype
48syn keyword xmathCmd	delete	hyperbuild	print	whatis
49syn keyword xmathCmd	deleteblock	if	printmodel	while
50syn keyword xmathCmd	deletebubble	ifilter	quit	who
51syn keyword xmathCmd	deleteconnection	ipcwc	remove	xgraph
52
53syn keyword xmathFunc	abcd	eye	irea	querystdoptions
54syn keyword xmathFunc	abs	eyepattern	is	querysuperblock
55syn keyword xmathFunc	acos	feedback	ISID	querysuperblockopt
56syn keyword xmathFunc	acosh	fft	ISID	Models	querytransition
57syn keyword xmathFunc	adconversion	fftpdm	kronecker	querytransitionopt
58syn keyword xmathFunc	afeedback	filter	length	qz
59syn keyword xmathFunc	all	find	limit	rampinvar
60syn keyword xmathFunc	ambiguity	firparks	lin	random
61syn keyword xmathFunc	amdemod	firremez	lin30	randpdm
62syn keyword xmathFunc	analytic	firwind	linearfm	randpert
63syn keyword xmathFunc	analyze	fmdemod	linfnorm	randsys
64syn keyword xmathFunc	any	forwdiff	lintodb	rank
65syn keyword xmathFunc	append	fprintf	list	rayleigh
66syn keyword xmathFunc	argn	frac	log	rcepstrum
67syn keyword xmathFunc	argv	fracred	log10	rcond
68syn keyword xmathFunc	arma	freq	logm	rdintegrate
69syn keyword xmathFunc	arma2ss	freqcircle	lognormal	read
70syn keyword xmathFunc	armax	freqcont	logspace	real
71syn keyword xmathFunc	ascii	frequencyhop	lowpass	rectify
72syn keyword xmathFunc	asin	fsesti	lpopt	redschur
73syn keyword xmathFunc	asinh	fslqgcomp	lqgcomp	reflect
74syn keyword xmathFunc	atan	fsregu	lqgltr	regulator
75syn keyword xmathFunc	atan2	fwls	ls	residue
76syn keyword xmathFunc	atanh	gabor	ls2unc	riccati
77syn keyword xmathFunc	attach_ac100	garb	ls2var	riccati_eig
78syn keyword xmathFunc	backdiff	gaussian	lsjoin	riccati_schur
79syn keyword xmathFunc	balance	gcexp	lu	ricean
80syn keyword xmathFunc	balmoore	gcos	lyapunov	rifd
81syn keyword xmathFunc	bandpass	gdfileselection	makecontinuous	rlinfo
82syn keyword xmathFunc	bandstop	gdmessage	makematrix	rlocus
83syn keyword xmathFunc	bj	gdselection	makepoly	rms
84syn keyword xmathFunc	blknorm	genconv	margin	rootlocus
85syn keyword xmathFunc	bode	get	markoff	roots
86syn keyword xmathFunc	bpm	get_info30	matchedpz	round
87syn keyword xmathFunc	bpm2inn	get_inn	max	rref
88syn keyword xmathFunc	bpmjoin	gfdm	maxlike	rve_get
89syn keyword xmathFunc	bpmsplit	gfsk	mean	rve_info
90syn keyword xmathFunc	bst	gfskernel	mergeseg	rve_reset
91syn keyword xmathFunc	buttconstr	gfunction	min	rve_update
92syn keyword xmathFunc	butterworth	ggauss	minimal	samplehold
93syn keyword xmathFunc	cancel	giv	mkpert	schur
94syn keyword xmathFunc	canform	giv2var	mkphase	sdf
95syn keyword xmathFunc	ccepstrum	givjoin	mma	sds
96syn keyword xmathFunc	char	gpsk	mmaget	sdtrsp
97syn keyword xmathFunc	chebconstr	gpulse	mmaput	sec
98syn keyword xmathFunc	chebyshev	gqam	mod	sech
99syn keyword xmathFunc	check	gqpsk	modal	siginterp
100syn keyword xmathFunc	cholesky	gramp	modalstate	sign
101syn keyword xmathFunc	chop	gsawtooth	modcarrier	sim
102syn keyword xmathFunc	circonv	gsigmoid	mreduce	sim30
103syn keyword xmathFunc	circorr	gsin	mtxplt	simin
104syn keyword xmathFunc	clock	gsinc	mu	simin30
105syn keyword xmathFunc	clocus	gsqpsk	mulhank	simout
106syn keyword xmathFunc	clsys	gsquarewave	multipath	simout30
107syn keyword xmathFunc	coherence	gstep	musynfit	simtransform
108syn keyword xmathFunc	colorind	GuiDialogCreate	mxstr2xmstr	sin
109syn keyword xmathFunc	combinepf	GuiDialogDestroy	mxstring2xmstring	singriccati
110syn keyword xmathFunc	commentof	GuiFlush	names	sinh
111syn keyword xmathFunc	compare	GuiGetValue	nichols	sinm
112syn keyword xmathFunc	complementaryerf	GuiManage	noisefilt	size
113syn keyword xmathFunc	complexenvelope	GuiPlot	none	smargin
114syn keyword xmathFunc	complexfreqshift	GuiPlotGet	norm	sns2sys
115syn keyword xmathFunc	concatseg	GuiSetValue	numden	sort
116syn keyword xmathFunc	condition	GuiShellCreate	nyquist	spectrad
117syn keyword xmathFunc	conj	GuiShellDeiconify	obscf	spectrum
118syn keyword xmathFunc	conmap	GuiShellDestroy	observable	spline
119syn keyword xmathFunc	connect	GuiShellIconify	oe	sprintf
120syn keyword xmathFunc	conpdm	GuiShellLower	ones	sqrt
121syn keyword xmathFunc	constellation	GuiShellRaise	ophank	sqrtm
122syn keyword xmathFunc	consys	GuiShellRealize	optimize	sresidualize
123syn keyword xmathFunc	controllable	GuiShellUnrealize	optscale	ss2arma
124syn keyword xmathFunc	convolve	GuiTimer	orderfilt	sst
125syn keyword xmathFunc	correlate	GuiToolCreate	orderstate	ssv
126syn keyword xmathFunc	cos	GuiToolDestroy	orth	stable
127syn keyword xmathFunc	cosh	GuiToolExist	oscmd	stair
128syn keyword xmathFunc	cosm	GuiUnmanage	oscope	starp
129syn keyword xmathFunc	cot	GuiWidgetExist	osscale	step
130syn keyword xmathFunc	coth	h2norm	padcrop	stepinvar
131syn keyword xmathFunc	covariance	h2syn	partialsum	string
132syn keyword xmathFunc	csc	hadamard	pdm	stringex
133syn keyword xmathFunc	csch	hankelsv	pdmslice	substr
134syn keyword xmathFunc	csum	hessenberg	pem	subsys
135syn keyword xmathFunc	ctrcf	highpass	perfplots	sum
136syn keyword xmathFunc	ctrlplot	hilbert	period	svd
137syn keyword xmathFunc	daug	hilberttransform	pfscale	svplot
138syn keyword xmathFunc	dbtolin	hinfcontr	phaseshift	sweep
139syn keyword xmathFunc	dct	hinfnorm	pinv	symbolmap
140syn keyword xmathFunc	decimate	hinfsyn	plot	sys2sns
141syn keyword xmathFunc	defFreqRange	histogram	plot30	sysic
142syn keyword xmathFunc	defTimeRange	idfreq	pmdemod	Sysid
143syn keyword xmathFunc	delay	idimpulse	poisson	system
144syn keyword xmathFunc	delsubstr	idsim	poissonimpulse	tan
145syn keyword xmathFunc	det	ifft	poleplace	tanh
146syn keyword xmathFunc	detrend	imag	poles	taper
147syn keyword xmathFunc	dht	impinvar	polezero	tfid
148syn keyword xmathFunc	diagonal	impplot	poltrend	toeplitz
149syn keyword xmathFunc	differentiate	impulse	polyfit	trace
150syn keyword xmathFunc	directsequence	index	polynomial	tril
151syn keyword xmathFunc	discretize	indexlist	polyval	trim
152syn keyword xmathFunc	divide	initial	polyvalm	trim30
153syn keyword xmathFunc	domain	initmodel	prbs	triu
154syn keyword xmathFunc	dst	initx0	product	trsp
155syn keyword xmathFunc	eig	inn2bpm	psd	truncate
156syn keyword xmathFunc	ellipconstr	inn2pe	put_inn	tustin
157syn keyword xmathFunc	elliptic	inn2unc	qpopt	uniform
158syn keyword xmathFunc	erf	insertseg	qr	val
159syn keyword xmathFunc	error	int	quantize	variance
160syn keyword xmathFunc	estimator	integrate	queryblock	videolines
161syn keyword xmathFunc	etfe	integratedump	queryblockoptions	wcbode
162syn keyword xmathFunc	exist	interp	querybubble	wcgain
163syn keyword xmathFunc	exp	interpolate	querybubbleoptionswindow
164syn keyword xmathFunc	expm	inv	querycatalog	wtbalance
165syn keyword xmathFunc	extractchan	invhilbert	queryconnection	zeros
166syn keyword xmathFunc	extractseg	iqmix	querystd
167
168syn case match
169
170" Labels (supports xmath's goto)
171syn match   xmathLabel	 "^\s*<[a-zA-Z_][a-zA-Z0-9]*>"
172
173" String and Character constants
174" Highlight special characters (those which have a backslash) differently
175syn match   xmathSpecial	contained "\\\d\d\d\|\\."
176syn region  xmathString	start=+"+  skip=+\\\\\|\\"+  end=+"+ contains=xmathSpecial,@Spell
177syn match   xmathCharacter	"'[^\\]'"
178syn match   xmathSpecialChar	"'\\.'"
179
180syn match   xmathNumber	"-\=\<\d\+L\=\>\|0[xX][0-9a-fA-F]\+\>"
181
182" Comments:
183" xmath supports #...  (like Unix shells)
184"       and      #{ ... }# comment blocks
185syn cluster xmathCommentGroup	contains=xmathString,xmathTodo,@Spell
186syn keyword xmathTodo contained	COMBAK	DEBUG	FIXME	Todo	TODO	XXX
187syn match   xmathComment	"#.*$"		contains=@xmathCommentGroup
188syn region  xmathCommentBlock	start="#{" end="}#"	contains=@xmathCommentGroup
189
190" synchronizing
191syn sync match xmathSyncComment	grouphere xmathCommentBlock "#{"
192syn sync match xmathSyncComment	groupthere NONE "}#"
193
194" Define the default highlighting.
195if !exists("skip_xmath_syntax_inits")
196
197  hi def link xmathBraceError	xmathError
198  hi def link xmathCmd	xmathStatement
199  hi def link xmathCommentBlock	xmathComment
200  hi def link xmathCurlyError	xmathError
201  hi def link xmathFuncCmd	xmathStatement
202  hi def link xmathParenError	xmathError
203
204  " The default methods for highlighting.  Can be overridden later
205  hi def link xmathCharacter	Character
206  hi def link xmathComma	Delimiter
207  hi def link xmathComment	Comment
208  hi def link xmathCommentBlock	Comment
209  hi def link xmathConditional	Conditional
210  hi def link xmathError	Error
211  hi def link xmathFunc	Function
212  hi def link xmathLabel	PreProc
213  hi def link xmathNumber	Number
214  hi def link xmathRepeat	Repeat
215  hi def link xmathSpecial	Type
216  hi def link xmathSpecialChar	SpecialChar
217  hi def link xmathStatement	Statement
218  hi def link xmathString	String
219  hi def link xmathTodo	Todo
220
221endif
222
223let b:current_syntax = "xmath"
224
225" vim: ts=17
226