1" Vim syntax file
2" Language:    MuPAD source
3" Maintainer:  Dave Silvia <dsilvia@mchsi.com>
4" Filenames:   *.mu
5" Date:        6/30/2004
6
7
8" For version 5.x: Clear all syntax items
9" For version 6.x: Quit when a syntax file was already loaded
10if version < 600
11  syntax clear
12elseif exists("b:current_syntax")
13  finish
14endif
15
16" Set default highlighting to Win2k
17if !exists("mupad_cmdextversion")
18  let mupad_cmdextversion = 2
19endif
20
21syn case match
22
23syn match mupadComment	"//\p*$"
24syn region mupadComment	start="/\*"	end="\*/"
25
26syn region mupadString	start="\""	skip=/\\"/	end="\""
27
28syn match mupadOperator		"(\|)\|:=\|::\|:\|;"
29" boolean
30syn keyword mupadOperator	and	or	not	xor
31syn match mupadOperator		"==>\|\<=\>"
32
33" Informational
34syn keyword mupadSpecial		FILEPATH	NOTEBOOKFILE	NOTEBOOKPATH
35" Set-able, e.g., DIGITS:=10
36syn keyword mupadSpecial		DIGITS		HISTORY		LEVEL
37syn keyword mupadSpecial		MAXLEVEL	MAXDEPTH	ORDER
38syn keyword mupadSpecial		TEXTWIDTH
39" Set-able, e.g., PRETTYPRINT:=TRUE
40syn keyword mupadSpecial		PRETTYPRINT
41" Set-able, e.g., LIBPATH:="C:\\MuPAD Pro\\mylibdir" or LIBPATH:="/usr/MuPAD Pro/mylibdir"
42syn keyword mupadSpecial		LIBPATH		PACKAGEPATH
43syn keyword mupadSpecial		READPATH	TESTPATH	WRITEPATH
44" Symbols and Constants
45syn keyword mupadDefine		FAIL		NIL
46syn keyword mupadDefine		TRUE		FALSE		UNKNOWN
47syn keyword mupadDefine		complexInfinity		infinity
48syn keyword mupadDefine		C_	CATALAN	E	EULER	I	PI	Q_	R_
49syn keyword mupadDefine		RD_INF	RD_NINF	undefined	unit	universe	Z_
50" print() directives
51syn keyword mupadDefine		Unquoted	NoNL	KeepOrder	Typeset
52" domain specifics
53syn keyword mupadStatement	domain	begin	end_domain	end
54syn keyword mupadIdentifier	inherits	category	axiom	info	doc interface
55" basic programming statements
56syn keyword mupadStatement	proc	begin	end_proc
57syn keyword mupadUnderlined	name	local	option	save
58syn keyword mupadConditional	if	then	elif	else	end_if
59syn keyword mupadConditional	case	of	do	break	end_case
60syn keyword mupadRepeat		for	do	next	break	end_for
61syn keyword mupadRepeat		while	do	next break end_while
62syn keyword mupadRepeat		repeat	next break until	end_repeat
63" domain packages/libraries
64syn keyword mupadType			detools	import	linalg	numeric	numlib	plot	polylib
65syn match mupadType				'\<DOM_\w*\>'
66
67"syn keyword mupadFunction	contains
68" Functions dealing with prime numbers
69syn keyword mupadFunction	phi	invphi	mersenne	nextprime	numprimedivisors
70syn keyword mupadFunction	pollard	prevprime	primedivisors
71" Functions operating on Lists, Matrices, Sets, ...
72syn keyword mupadFunction	array	_index
73" Evaluation
74syn keyword mupadFunction	float contains
75" stdlib
76syn keyword mupadFunction	_exprseq	_invert	_lazy_and	_lazy_or	_negate
77syn keyword mupadFunction	_stmtseq	_invert	intersect	minus		union
78syn keyword mupadFunction	Ci	D	Ei	O	Re	Im	RootOf	Si
79syn keyword mupadFunction	Simplify
80syn keyword mupadFunction	abs	airyAi	airyBi	alias	unalias	anames	append
81syn keyword mupadFunction	arcsin	arccos	arctan	arccsc	arcsec	arccot
82syn keyword mupadFunction	arcsinh	arccosh	arctanh	arccsch	arcsech	arccoth
83syn keyword mupadFunction	arg	args	array	assert	assign	assignElements
84syn keyword mupadFunction	assume	assuming	asympt	bernoulli
85syn keyword mupadFunction	besselI	besselJ	besselK	besselY	beta	binomial	bool
86syn keyword mupadFunction	bytes	card
87syn keyword mupadFunction	ceil	floor	round	trunc
88syn keyword mupadFunction	coeff	coerce	collect	combine	copyClosure
89syn keyword mupadFunction	conjugate	content	context	contfrac
90syn keyword mupadFunction	debug	degree	degreevec	delete	_delete	denom
91syn keyword mupadFunction	densematrix	diff	dilog	dirac	discont	div	_div
92syn keyword mupadFunction	divide	domtype	doprint	erf	erfc	error	eval	evalassign
93syn keyword mupadFunction	evalp	exp	expand	export	unexport	expose	expr
94syn keyword mupadFunction	expr2text	external	extnops	extop	extsubsop
95syn keyword mupadFunction	fact	fact2	factor	fclose	finput	fname	fopen	fprint
96syn keyword mupadFunction	fread	ftextinput	readbitmap	readdata	pathname
97syn keyword mupadFunction	protocol	read	readbytes	write	writebytes
98syn keyword mupadFunction	float	frac	frame	_frame	frandom	freeze	unfreeze
99syn keyword mupadFunction	funcenv	gamma	gcd	gcdex	genident	genpoly
100syn keyword mupadFunction	getpid	getprop	ground	has	hastype	heaviside	help
101syn keyword mupadFunction	history	hold	hull	hypergeom	icontent	id
102syn keyword mupadFunction	ifactor	igamma	igcd	igcdex	ilcm	in	_in
103syn keyword mupadFunction	indets	indexval	info	input	int	int2text
104syn keyword mupadFunction	interpolate	interval	irreducible	is
105syn keyword mupadFunction	isprime	isqrt	iszero	ithprime	kummerU	lambertW
106syn keyword mupadFunction	last	lasterror	lcm	lcoeff	ldegree	length
107syn keyword mupadFunction	level	lhs	rhs	limit	linsolve	lllint
108syn keyword mupadFunction	lmonomial	ln	loadmod	loadproc	log	lterm
109syn keyword mupadFunction	match	map	mapcoeffs	maprat	matrix	max	min
110syn keyword mupadFunction	mod	modp	mods	monomials	multcoeffs	new
111syn keyword mupadFunction	newDomain	_next	nextprime	nops
112syn keyword mupadFunction	norm	normal	nterms	nthcoeff	nthmonomial	nthterm
113syn keyword mupadFunction	null	numer	ode	op	operator	package
114syn keyword mupadFunction	pade	partfrac	patchlevel	pdivide
115syn keyword mupadFunction	piecewise	plot	plotfunc2d	plotfunc3d
116syn keyword mupadFunction	poly	poly2list	polylog	powermod	print
117syn keyword mupadFunction	product	protect	psi	quit	_quit	radsimp	random	rationalize
118syn keyword mupadFunction	rec	rectform	register	reset	return	revert
119syn keyword mupadFunction	rewrite	select	series	setuserinfo	share	sign	signIm
120syn keyword mupadFunction	simplify
121syn keyword mupadFunction	sin	cos	tan	csc	sec	cot
122syn keyword mupadFunction	sinh	cosh	tanh	csch	sech	coth
123syn keyword mupadFunction	slot	solve
124syn keyword mupadFunction	pdesolve	matlinsolve	matlinsolveLU	toeplitzSolve
125syn keyword mupadFunction	vandermondeSolve	fsolve	odesolve	odesolve2
126syn keyword mupadFunction	polyroots	polysysroots	odesolveGeometric
127syn keyword mupadFunction	realroot	realroots	mroots	lincongruence
128syn keyword mupadFunction	msqrts
129syn keyword mupadFunction	sort	split	sqrt	strmatch	strprint
130syn keyword mupadFunction	subs	subset	subsex	subsop	substring	sum
131syn keyword mupadFunction	surd	sysname	sysorder	system	table	taylor	tbl2text
132syn keyword mupadFunction	tcoeff	testargs	testeq	testtype	text2expr
133syn keyword mupadFunction	text2int	text2list	text2tbl	rtime	time
134syn keyword mupadFunction	traperror	type	unassume	unit	universe
135syn keyword mupadFunction	unloadmod	unprotect	userinfo	val	version
136syn keyword mupadFunction	warning	whittakerM	whittakerW	zeta	zip
137
138" graphics  plot::
139syn keyword mupadFunction	getDefault	setDefault	copy	modify	Arc2d	Arrow2d
140syn keyword mupadFunction	Arrow3d	Bars2d	Bars3d	Box	Boxplot	Circle2d	Circle3d
141syn keyword mupadFunction	Cone	Conformal	Curve2d	Curve3d	Cylinder	Cylindrical
142syn keyword mupadFunction	Density	Ellipse2d	Function2d	Function3d	Hatch
143syn keyword mupadFunction	Histogram2d	HOrbital	Implicit2d	Implicit3d
144syn keyword mupadFunction	Inequality	Iteration	Line2d	Line3d	Lsys	Matrixplot
145syn keyword mupadFunction	MuPADCube	Ode2d	Ode3d	Parallelogram2d	Parallelogram3d
146syn keyword mupadFunction	Piechart2d	Piechart3d	Point2d	Point3d	Polar
147syn keyword mupadFunction	Polygon2d	Polygon3d	Raster	Rectangle	Sphere
148syn keyword mupadFunction	Ellipsoid	Spherical	Sum	Surface	SurfaceSet
149syn keyword mupadFunction	SurfaceSTL	Tetrahedron	Hexahedron	Octahedron
150syn keyword mupadFunction	Dodecahedron	Icosahedron	Text2d	Text3d	Tube	Turtle
151syn keyword mupadFunction	VectorField2d	XRotate	ZRotate	Canvas	CoordinateSystem2d
152syn keyword mupadFunction	CoordinateSystem3d	Group2d	Group3d	Scene2d	Scene3d	ClippingBox
153syn keyword mupadFunction	Rotate2d	Rotate3d	Scale2d	Scale3d	Transform2d
154syn keyword mupadFunction	Transform3d	Translate2d	Translate3d	AmbientLight
155syn keyword mupadFunction	Camera	DistantLight	PointLight	SpotLight
156
157" graphics Attributes
158" graphics  Output Attributes
159syn keyword mupadIdentifier	OutputFile	OutputOptions
160" graphics  Defining Attributes
161syn keyword mupadIdentifier	Angle	AngleRange	AngleBegin	AngleEnd
162syn keyword mupadIdentifier	Area	Axis	AxisX	AxisY	AxisZ	Base	Top
163syn keyword mupadIdentifier	BaseX	TopX	BaseY	TopY	BaseZ	TopZ
164syn keyword mupadIdentifier	BaseRadius	TopRadius	Cells
165syn keyword mupadIdentifier	Center	CenterX	CenterY	CenterZ
166syn keyword mupadIdentifier	Closed	ColorData	CommandList	Contours	CoordinateType
167syn keyword mupadIdentifier	Data	DensityData	DensityFunction	From	To
168syn keyword mupadIdentifier	FromX	ToX	FromY	ToY	FromZ	ToZ
169syn keyword mupadIdentifier	Function	FunctionX	FunctionY	FunctionZ
170syn keyword mupadIdentifier	Function1	Function2	Baseline
171syn keyword mupadIdentifier	Generations	RotationAngle	IterationRules	StartRule StepLength
172syn keyword mupadIdentifier	TurtleRules	Ground	Heights	Moves	Inequalities
173syn keyword mupadIdentifier	InputFile	Iterations	StartingPoint
174syn keyword mupadIdentifier	LineColorFunction	FillColorFunction
175syn keyword mupadIdentifier	Matrix2d	Matrix3d
176syn keyword mupadIdentifier	MeshList	MeshListType	MeshListNormals
177syn keyword mupadIdentifier	MagneticQuantumNumber	MomentumQuantumNumber	PrincipalQuantumNumber
178syn keyword mupadIdentifier	Name	Normal	NormalX	NormalY	NormalZ
179syn keyword mupadIdentifier	ParameterName	ParameterBegin	ParameterEnd	ParameterRange
180syn keyword mupadIdentifier	Points2d	Points3d	Radius	RadiusFunction
181syn keyword mupadIdentifier	Position	PositionX	PositionY	PositionZ
182syn keyword mupadIdentifier	Scale	ScaleX	ScaleY	ScaleZ Shift	ShiftX	ShiftY	ShiftZ
183syn keyword mupadIdentifier	SemiAxes	SemiAxisX	SemiAxisY	SemiAxisZ
184syn keyword mupadIdentifier	Tangent1	Tangent1X	Tangent1Y	Tangent1Z
185syn keyword mupadIdentifier	Tangent2	Tangent2X	Tangent2Y	Tangent2Z
186syn keyword mupadIdentifier	Text	TextOrientation	TextRotation
187syn keyword mupadIdentifier	UName	URange	UMin	UMax	VName	VRange	VMin	VMax
188syn keyword mupadIdentifier	XName	XRange	XMin	XMax	YName	YRange	YMin	YMax
189syn keyword mupadIdentifier	ZName	ZRange	ZMin	ZMax	ViewingBox
190syn keyword mupadIdentifier	ViewingBoxXMin	ViewingBoxXMax	ViewingBoxXRange
191syn keyword mupadIdentifier	ViewingBoxYMin	ViewingBoxYMax	ViewingBoxYRange
192syn keyword mupadIdentifier	ViewingBoxZMin	ViewingBoxZMax	ViewingBoxZRange
193syn keyword mupadIdentifier	Visible
194" graphics  Axis Attributes
195syn keyword mupadIdentifier	Axes	AxesInFront	AxesLineColor	AxesLineWidth
196syn keyword mupadIdentifier	AxesOrigin	AxesOriginX	AxesOriginY	AxesOriginZ
197syn keyword mupadIdentifier	AxesTips	AxesTitleAlignment
198syn keyword mupadIdentifier	AxesTitleAlignmentX	AxesTitleAlignmentY	AxesTitleAlignmentZ
199syn keyword mupadIdentifier	AxesTitles	XAxisTitle	YAxisTitle	ZAxisTitle
200syn keyword mupadIdentifier	AxesVisible	XAxisVisible	YAxisVisible	ZAxisVisible
201syn keyword mupadIdentifier	YAxisTitleOrientation
202" graphics  Tick Marks Attributes
203syn keyword mupadIdentifier	TicksAnchor	XTicksAnchor	YTicksAnchor	ZTicksAnchor
204syn keyword mupadIdentifier	TicksAt	XTicksAt	YTicksAt	ZTicksAt
205syn keyword mupadIdentifier	TicksBetween	XTicksBetween	YTicksBetween	ZTicksBetween
206syn keyword mupadIdentifier	TicksDistance	XTicksDistance	YTicksDistance	ZTicksDistance
207syn keyword mupadIdentifier	TicksNumber	XTicksNumber	YTicksNumber	ZTicksNumber
208syn keyword mupadIdentifier	TicksVisible	XTicksVisible	YTicksVisible	ZTicksVisible
209syn keyword mupadIdentifier	TicksLength	TicksLabelStyle
210syn keyword mupadIdentifier	XTicksLabelStyle	YTicksLabelStyle	ZTicksLabelStyle
211syn keyword mupadIdentifier	TicksLabelsVisible
212syn keyword mupadIdentifier	XTicksLabelsVisible	YTicksLabelsVisible	ZTicksLabelsVisible
213" graphics  Grid Lines Attributes
214syn keyword mupadIdentifier	GridInFront	GridLineColor	SubgridLineColor
215syn keyword mupadIdentifier	GridLineStyle	SubgridLineStyle GridLineWidth	SubgridLineWidth
216syn keyword mupadIdentifier	GridVisible	XGridVisible	YGridVisible	ZGridVisible
217syn keyword mupadIdentifier	SubgridVisible	XSubgridVisible	YSubgridVisible	ZSubgridVisible
218" graphics  Animation Attributes
219syn keyword mupadIdentifier	Frames	TimeRange	TimeBegin	TimeEnd
220syn keyword mupadIdentifier	VisibleAfter	VisibleBefore	VisibleFromTo
221syn keyword mupadIdentifier	VisibleAfterEnd	VisibleBeforeBegin
222" graphics  Annotation Attributes
223syn keyword mupadIdentifier	Footer	Header	FooterAlignment	HeaderAlignment
224syn keyword mupadIdentifier	HorizontalAlignment	TitleAlignment	VerticalAlignment
225syn keyword mupadIdentifier	Legend	LegendEntry	LegendText
226syn keyword mupadIdentifier	LegendAlignment	LegendPlacement	LegendVisible
227syn keyword mupadIdentifier	Title	Titles
228syn keyword mupadIdentifier	TitlePosition	TitlePositionX	TitlePositionY	TitlePositionZ
229" graphics  Layout Attributes
230syn keyword mupadIdentifier	Bottom	Left	Height	Width	Layout	Rows	Columns
231syn keyword mupadIdentifier	Margin	BottomMargin	TopMargin	LeftMargin	RightMargin
232syn keyword mupadIdentifier	OutputUnits	Spacing
233" graphics  Calculation Attributes
234syn keyword mupadIdentifier	AdaptiveMesh	DiscontinuitySearch	Mesh	SubMesh
235syn keyword mupadIdentifier	UMesh	USubMesh	VMesh	VSubMesh
236syn keyword mupadIdentifier	XMesh	XSubMesh	YMesh	YSubMesh	Zmesh
237" graphics  Camera and Lights Attributes
238syn keyword mupadIdentifier	CameraCoordinates	CameraDirection
239syn keyword mupadIdentifier	CameraDirectionX	CameraDirectionY	CameraDirectionZ
240syn keyword mupadIdentifier	FocalPoint	FocalPointX	FocalPointY	FocalPointZ
241syn keyword mupadIdentifier	LightColor	Lighting	LightIntensity	OrthogonalProjection
242syn keyword mupadIdentifier	SpotAngle	ViewingAngle
243syn keyword mupadIdentifier	Target	TargetX	TargetY	TargetZ
244" graphics  Presentation Style and Fonts Attributes
245syn keyword mupadIdentifier	ArrowLength
246syn keyword mupadIdentifier	AxesTitleFont	FooterFont	HeaderFont	LegendFont
247syn keyword mupadIdentifier	TextFont	TicksLabelFont	TitleFont
248syn keyword mupadIdentifier	BackgroundColor	BackgroundColor2	BackgroundStyle
249syn keyword mupadIdentifier	BackgroundTransparent	Billboarding	BorderColor	BorderWidth
250syn keyword mupadIdentifier	BoxCenters	BoxWidths	DrawMode Gap	XGap	YGap
251syn keyword mupadIdentifier	Notched	NotchWidth	Scaling	YXRatio	ZXRatio
252syn keyword mupadIdentifier	VerticalAsymptotesVisible	VerticalAsymptotesStyle
253syn keyword mupadIdentifier	VerticalAsymptotesColor	VerticalAsymptotesWidth
254" graphics  Line Style Attributes
255syn keyword mupadIdentifier	LineColor	LineColor2	LineColorType	LineStyle
256syn keyword mupadIdentifier	LinesVisible	ULinesVisible	VLinesVisible	XLinesVisible
257syn keyword mupadIdentifier	YLinesVisible	LineWidth	MeshVisible
258" graphics  Point Style Attributes
259syn keyword mupadIdentifier	PointColor	PointSize	PointStyle	PointsVisible
260" graphics  Surface Style Attributes
261syn keyword mupadIdentifier	BarStyle	Shadows	Color	Colors	FillColor	FillColor2
262syn keyword mupadIdentifier	FillColorTrue	FillColorFalse	FillColorUnknown	FillColorType
263syn keyword mupadIdentifier	Filled	FillPattern	FillPatterns	FillStyle
264syn keyword mupadIdentifier	InterpolationStyle	Shading	UseNormals
265" graphics  Arrow Style Attributes
266syn keyword mupadIdentifier	TipAngle	TipLength	TipStyle	TubeDiameter
267syn keyword mupadIdentifier	Tubular
268" graphics  meta-documentation Attributes
269syn keyword mupadIdentifier	objectGroupsListed
270
271if version >= 508 || !exists("did_mupad_syntax_inits")
272  if version < 508
273    let did_mupad_syntax_inits = 1
274    command -nargs=+ HiLink hi link <args>
275  else
276    command -nargs=+ HiLink hi def link <args>
277  endif
278
279  HiLink mupadComment		Comment
280  HiLink mupadString		String
281  HiLink mupadOperator		Operator
282  HiLink mupadSpecial		Special
283  HiLink mupadStatement		Statement
284  HiLink mupadUnderlined	Underlined
285  HiLink mupadConditional	Conditional
286  HiLink mupadRepeat		Repeat
287  HiLink mupadFunction		Function
288  HiLink mupadType		Type
289  HiLink mupadDefine		Define
290  HiLink mupadIdentifier	Identifier
291
292  delcommand HiLink
293endif
294
295" TODO  More comprehensive listing.
296