825
|
1 " Vim syntax file
|
|
2 " Language: Maxima (symbolic algebra program)
|
|
3 " Maintainer: Robert Dodier (robert.dodier@gmail.com)
|
|
4 " Last Change: April 6, 2006
|
|
5 " Version: 1
|
|
6 " Adapted mostly from xmath.vim
|
|
7 " Number formats adapted from r.vim
|
|
8 "
|
|
9 " For version 5.x: Clear all syntax items
|
|
10 " For version 6.x: Quit when a syntax file was already loaded
|
|
11 if version < 600
|
|
12 syntax clear
|
|
13 elseif exists("b:current_syntax")
|
|
14 finish
|
|
15 endif
|
|
16
|
|
17 syn sync lines=1000
|
|
18
|
|
19 " parenthesis sanity checker
|
|
20 syn region maximaZone matchgroup=Delimiter start="(" matchgroup=Delimiter end=")" transparent contains=ALLBUT,maximaError,maximaBraceError,maximaCurlyError
|
|
21 syn region maximaZone matchgroup=Delimiter start="{" matchgroup=Delimiter end="}" transparent contains=ALLBUT,maximaError,maximaBraceError,maximaParenError
|
|
22 syn region maximaZone matchgroup=Delimiter start="\[" matchgroup=Delimiter end="]" transparent contains=ALLBUT,maximaError,maximaCurlyError,maximaParenError
|
|
23 syn match maximaError "[)\]}]"
|
|
24 syn match maximaBraceError "[)}]" contained
|
|
25 syn match maximaCurlyError "[)\]]" contained
|
|
26 syn match maximaParenError "[\]}]" contained
|
|
27 syn match maximaComma "[\[\](),;]"
|
|
28 syn match maximaComma "\.\.\.$"
|
|
29
|
|
30 " A bunch of useful maxima keywords
|
|
31 syn keyword maximaConditional if then else elseif and or not
|
|
32 syn keyword maximaRepeat do for thru
|
|
33
|
|
34 " ---------------------- BEGIN LIST OF ALL FUNCTIONS (EXCEPT KEYWORDS) ----------------------
|
|
35 syn keyword maximaFunc abasep abs absboxchar absint acos acosh acot acoth acsc
|
|
36 syn keyword maximaFunc acsch activate activecontexts addcol additive addrow adim
|
|
37 syn keyword maximaFunc adjoint af aform airy algebraic algepsilon algexact algsys
|
|
38 syn keyword maximaFunc alg_type alias aliases allbut all_dotsimp_denoms allroots allsym
|
|
39 syn keyword maximaFunc alphabetic antid antidiff antisymmetric append appendfile
|
|
40 syn keyword maximaFunc apply apply1 apply2 applyb1 apropos args array arrayapply
|
|
41 syn keyword maximaFunc arrayinfo arraymake arrays asec asech asin asinh askexp
|
|
42 syn keyword maximaFunc askinteger asksign assoc assoc_legendre_p assoc_legendre_q assume
|
|
43 syn keyword maximaFunc assume_pos assume_pos_pred assumescalar asymbol asympa at atan
|
|
44 syn keyword maximaFunc atan2 atanh atensimp atom atomgrad atrig1 atvalue augcoefmatrix
|
|
45 syn keyword maximaFunc av backsubst backtrace bashindices batch batchload bc2 bdvac
|
|
46 syn keyword maximaFunc berlefact bern bernpoly bessel besselexpand bessel_i bessel_j
|
|
47 syn keyword maximaFunc bessel_k bessel_y beta bezout bffac bfhzeta bfloat bfloatp
|
|
48 syn keyword maximaFunc bfpsi bfpsi0 bftorat bftrunc bfzeta bimetric binomial block
|
|
49 syn keyword maximaFunc bothcoef box boxchar break breakup bug_report build_info buildq
|
|
50 syn keyword maximaFunc burn cabs canform canten carg cartan catch cauchysum cbffac
|
|
51 syn keyword maximaFunc cdisplay cf cfdisrep cfexpand cflength cframe_flag cgeodesic
|
|
52 syn keyword maximaFunc changename changevar charpoly checkdiv check_overlaps christof
|
|
53 syn keyword maximaFunc clear_rules closefile closeps cmetric cnonmet_flag coeff
|
|
54 syn keyword maximaFunc coefmatrix cograd col collapse columnvector combine commutative
|
|
55 syn keyword maximaFunc comp2pui compfile compile compile_file components concan concat
|
|
56 syn keyword maximaFunc conj conjugate conmetderiv cons constant constantp cont2part
|
|
57 syn keyword maximaFunc content context contexts contortion contract contragrad coord
|
|
58 syn keyword maximaFunc copylist copymatrix cos cosh cosnpiflag cot coth covdiff
|
|
59 syn keyword maximaFunc covect create_list csc csch csetup ctaylor ctaypov ctaypt
|
|
60 syn keyword maximaFunc ctayswitch ctayvar ct_coords ct_coordsys ctorsion_flag ctransform
|
|
61 syn keyword maximaFunc ctrgsimp current_let_rule_package dblint deactivate debugmode
|
|
62 syn keyword maximaFunc declare declare_translated declare_weight decsym
|
|
63 syn keyword maximaFunc default_let_rule_package defcon define define_variable defint
|
|
64 syn keyword maximaFunc defmatch defrule deftaylor del delete deleten delta demo
|
|
65 syn keyword maximaFunc demoivre denom dependencies depends derivabbrev derivdegree
|
|
66 syn keyword maximaFunc derivlist derivsubst describe desolve determinant detout
|
|
67 syn keyword maximaFunc diagmatrix diagmatrixp diagmetric diff dim dimension direct
|
|
68 syn keyword maximaFunc disolate disp dispcon dispflag dispform dispfun display
|
|
69 syn keyword maximaFunc display2d display_format_internal disprule dispterms distrib
|
|
70 syn keyword maximaFunc divide divsum doallmxops domain domxexpt domxmxops domxnctimes
|
|
71 syn keyword maximaFunc dontfactor doscmxops doscmxplus dot0nscsimp dot0simp dot1simp
|
|
72 syn keyword maximaFunc dotassoc dotconstrules dotdistrib dotexptsimp dotident dotscrules
|
|
73 syn keyword maximaFunc dotsimp dpart dscalar %e echelon %edispflag eigenvalues
|
|
74 syn keyword maximaFunc eigenvectors eighth einstein eivals eivects ele2comp
|
|
75 syn keyword maximaFunc ele2polynome ele2pui elem eliminate elliptic_e elliptic_ec
|
|
76 syn keyword maximaFunc elliptic_eu elliptic_f elliptic_kc elliptic_pi ematrix %emode
|
|
77 syn keyword maximaFunc endcons entermatrix entertensor entier %enumer equal equalp erf
|
|
78 syn keyword maximaFunc erfflag errcatch error errormsg error_size error_syms
|
|
79 syn keyword maximaFunc %e_to_numlog euler ev eval evenp every evflag evfun evundiff
|
|
80 syn keyword maximaFunc example exp expand expandwrt expandwrt_denom expandwrt_factored
|
|
81 syn keyword maximaFunc explose expon exponentialize expop express expt exptdispflag
|
|
82 syn keyword maximaFunc exptisolate exptsubst extdiff extract_linear_equations ezgcd
|
|
83 syn keyword maximaFunc facexpand factcomb factlim factor factorflag factorial factorout
|
|
84 syn keyword maximaFunc factorsum facts false fast_central_elements fast_linsolve
|
|
85 syn keyword maximaFunc fasttimes fb feature featurep features fft fib fibtophi fifth
|
|
86 syn keyword maximaFunc filename_merge file_search file_search_demo file_search_lisp
|
|
87 syn keyword maximaFunc file_search_maxima file_type fillarray findde first fix flatten
|
|
88 syn keyword maximaFunc flipflag float float2bf floatnump flush flush1deriv flushd
|
|
89 syn keyword maximaFunc flushnd forget fortindent fortran fortspaces fourcos fourexpand
|
|
90 syn keyword maximaFunc fourier fourint fourintcos fourintsin foursimp foursin fourth
|
|
91 syn keyword maximaFunc fpprec fpprintprec frame_bracket freeof fullmap fullmapl
|
|
92 syn keyword maximaFunc fullratsimp fullratsubst funcsolve functions fundef funmake funp
|
|
93 syn keyword maximaFunc gamma %gamma gammalim gauss gcd gcdex gcfactor gdet genfact
|
|
94 syn keyword maximaFunc genindex genmatrix gensumnum get getchar gfactor gfactorsum
|
|
95 syn keyword maximaFunc globalsolve go gradef gradefs gramschmidt grind grobner_basis
|
|
96 syn keyword maximaFunc gschmit hach halfangles hermite hipow hodge horner i0 i1
|
|
97 syn keyword maximaFunc *read-base* ic1 ic2 icc1 icc2 ic_convert ichr1 ichr2 icounter
|
|
98 syn keyword maximaFunc icurvature ident idiff idim idummy idummyx ieqn ieqnprint ifb
|
|
99 syn keyword maximaFunc ifc1 ifc2 ifg ifgi ifr iframe_bracket_form iframes ifri ift
|
|
100 syn keyword maximaFunc igeodesic_coords igeowedge_flag ikt1 ikt2 ilt imagpart imetric
|
|
101 syn keyword maximaFunc inchar indexed_tensor indices inf %inf infeval infinity infix
|
|
102 syn keyword maximaFunc inflag infolists init_atensor init_ctensor inm inmc1 inmc2
|
|
103 syn keyword maximaFunc innerproduct in_netmath inpart inprod inrt integerp integrate
|
|
104 syn keyword maximaFunc integrate_use_rootsof integration_constant_counter interpolate
|
|
105 syn keyword maximaFunc intfaclim intopois intosum intpolabs intpolerror intpolrel
|
|
106 syn keyword maximaFunc invariant1 invariant2 inverse_jacobi_cd inverse_jacobi_cn
|
|
107 syn keyword maximaFunc inverse_jacobi_cs inverse_jacobi_dc inverse_jacobi_dn
|
|
108 syn keyword maximaFunc inverse_jacobi_ds inverse_jacobi_nc inverse_jacobi_nd
|
|
109 syn keyword maximaFunc inverse_jacobi_ns inverse_jacobi_sc inverse_jacobi_sd
|
|
110 syn keyword maximaFunc inverse_jacobi_sn invert is ishow isolate isolate_wrt_times
|
|
111 syn keyword maximaFunc isqrt itr j0 j1 jacobi jacobi_cd jacobi_cn jacobi_cs jacobi_dc
|
|
112 syn keyword maximaFunc jacobi_dn jacobi_ds jacobi_nc jacobi_nd jacobi_ns jacobi_sc
|
|
113 syn keyword maximaFunc jacobi_sd jacobi_sn jn kdels kdelta keepfloat kill killcontext
|
|
114 syn keyword maximaFunc kinvariant kostka kt labels lambda laplace lassociative last
|
|
115 syn keyword maximaFunc lc2kdt lc_l lcm lc_u ldefint ldisp ldisplay leinstein length
|
|
116 syn keyword maximaFunc let letrat let_rule_packages letrules letsimp levi_civita lfg
|
|
117 syn keyword maximaFunc lfreeof lg lgtreillis lhospitallim lhs liediff limit limsubst
|
|
118 syn keyword maximaFunc linear linechar linel linenum linsolve linsolve_params
|
|
119 syn keyword maximaFunc linsolvewarn listarith listarray listconstvars listdummyvars
|
|
120 syn keyword maximaFunc list_nc_monomials listoftens listofvars listp lmxchar load
|
|
121 syn keyword maximaFunc loadfile loadprint local log logabs logarc logconcoeffp
|
|
122 syn keyword maximaFunc logcontract logexpand lognegint lognumer logsimp lopow
|
|
123 syn keyword maximaFunc lorentz_gauge lpart lratsubst lriem lriemann lsum ltreillis
|
|
124 syn keyword maximaFunc m1pbranch macroexpansion mainvar make_array makebox makefact
|
|
125 syn keyword maximaFunc makegamma makelist make_random_state make_transform map mapatom
|
|
126 syn keyword maximaFunc maperror maplist matchdeclare matchfix matrix matrix_element_add
|
|
127 syn keyword maximaFunc matrix_element_mult matrix_element_transpose matrixmap matrixp
|
|
128 syn keyword maximaFunc mattrace max maxapplydepth maxapplyheight maxnegex maxposex
|
|
129 syn keyword maximaFunc maxtayorder member min %minf minfactorial minor mod
|
|
130 syn keyword maximaFunc mode_check_errorp mode_checkp mode_check_warnp mode_declare
|
|
131 syn keyword maximaFunc mode_identity modulus mon2schur mono monomial_dimensions
|
|
132 syn keyword maximaFunc multi_elem multinomial multi_orbit multiplicative multiplicities
|
|
133 syn keyword maximaFunc multi_pui multsym multthru myoptions nc_degree ncexpt ncharpoly
|
|
134 syn keyword maximaFunc negdistrib negsumdispflag newcontext newdet newton niceindices
|
|
135 syn keyword maximaFunc niceindicespref ninth nm nmc noeval nolabels nonmetricity
|
|
136 syn keyword maximaFunc nonscalar nonscalarp noun noundisp nounify nouns np npi
|
|
137 syn keyword maximaFunc nptetrad nroots nterms ntermst nthroot ntrig num numberp numer
|
|
138 syn keyword maximaFunc numerval numfactor nusum obase oddp ode2 op openplot_curves
|
|
139 syn keyword maximaFunc operatorp opproperties opsubst optimize optimprefix optionset
|
|
140 syn keyword maximaFunc orbit ordergreat ordergreatp orderless orderlessp outative
|
|
141 syn keyword maximaFunc outchar outermap outofpois packagefile pade part part2cont
|
|
142 syn keyword maximaFunc partfrac partition partpol partswitch permanent permut petrov
|
|
143 syn keyword maximaFunc pfeformat pi pickapart piece playback plog plot2d plot2d_ps
|
|
144 syn keyword maximaFunc plot3d plot_options poisdiff poisexpt poisint poislim poismap
|
|
145 syn keyword maximaFunc poisplus poissimp poisson poissubst poistimes poistrim polarform
|
|
146 syn keyword maximaFunc polartorect polynome2ele posfun potential powerdisp powers
|
|
147 syn keyword maximaFunc powerseries pred prederror primep print printpois printprops
|
|
148 syn keyword maximaFunc prodhack prodrac product programmode prompt properties props
|
|
149 syn keyword maximaFunc propvars pscom psdraw_curve psexpand psi pui pui2comp pui2ele
|
|
150 syn keyword maximaFunc pui2polynome pui_direct puireduc put qput qq quad_qag quad_qagi
|
|
151 syn keyword maximaFunc quad_qags quad_qawc quad_qawf quad_qawo quad_qaws quanc8 quit
|
|
152 syn keyword maximaFunc qunit quotient radcan radexpand radsubstflag random rank
|
|
153 syn keyword maximaFunc rassociative rat ratalgdenom ratchristof ratcoef ratdenom
|
|
154 syn keyword maximaFunc ratdenomdivide ratdiff ratdisrep rateinstein ratepsilon ratexpand
|
|
155 syn keyword maximaFunc ratfac ratmx ratnumer ratnump ratp ratprint ratriemann ratsimp
|
|
156 syn keyword maximaFunc ratsimpexpons ratsubst ratvars ratweight ratweights ratweyl
|
|
157 syn keyword maximaFunc ratwtlvl read readonly realonly realpart realroots rearray
|
|
158 syn keyword maximaFunc rectform recttopolar rediff refcheck rem remainder remarray
|
|
159 syn keyword maximaFunc rembox remcomps remcon remcoord remfun remfunction remlet
|
|
160 syn keyword maximaFunc remove remrule remsym remvalue rename reset residue resolvante
|
|
161 syn keyword maximaFunc resolvante_alternee1 resolvante_bipartite resolvante_diedrale
|
|
162 syn keyword maximaFunc resolvante_klein resolvante_klein3 resolvante_produit_sym
|
|
163 syn keyword maximaFunc resolvante_unitaire resolvante_vierer rest resultant return
|
|
164 syn keyword maximaFunc reveal reverse revert revert2 rhs ric ricci riem riemann
|
|
165 syn keyword maximaFunc rinvariant risch rmxchar rncombine %rnum_list romberg rombergabs
|
|
166 syn keyword maximaFunc rombergit rombergmin rombergtol room rootsconmode rootscontract
|
|
167 syn keyword maximaFunc rootsepsilon round row run_testsuite save savedef savefactors
|
|
168 syn keyword maximaFunc scalarmatrixp scalarp scalefactors scanmap schur2comp sconcat
|
|
169 syn keyword maximaFunc scsimp scurvature sec sech second setcheck setcheckbreak
|
|
170 syn keyword maximaFunc setelmx set_plot_option set_random_state setup_autoload
|
|
171 syn keyword maximaFunc set_up_dot_simplifications setval seventh sf show showcomps
|
|
172 syn keyword maximaFunc showratvars showtime sign signum similaritytransform simpsum
|
|
173 syn keyword maximaFunc simtran sin sinh sinnpiflag sixth solve solvedecomposes
|
|
174 syn keyword maximaFunc solveexplicit solvefactors solve_inconsistent_error solvenullwarn
|
|
175 syn keyword maximaFunc solveradcan solvetrigwarn somrac sort sparse spherical_bessel_j
|
|
176 syn keyword maximaFunc spherical_bessel_y spherical_hankel1 spherical_hankel2
|
|
177 syn keyword maximaFunc spherical_harmonic splice sqfr sqrt sqrtdispflag sstatus
|
|
178 syn keyword maximaFunc stardisp status string stringout sublis sublis_apply_lambda
|
|
179 syn keyword maximaFunc sublist submatrix subst substinpart substpart subvarp sum
|
|
180 syn keyword maximaFunc sumcontract sumexpand sumhack sumsplitfact supcontext symbolp
|
|
181 syn keyword maximaFunc symmetric symmetricp system tan tanh taylor taylordepth
|
|
182 syn keyword maximaFunc taylorinfo taylor_logexpand taylor_order_coefficients taylorp
|
|
183 syn keyword maximaFunc taylor_simplifier taylor_truncate_polynomials taytorat tcl_output
|
|
184 syn keyword maximaFunc tcontract tellrat tellsimp tellsimpafter tensorkill tentex tenth
|
|
185 syn keyword maximaFunc tex %th third throw time timer timer_devalue timer_info
|
|
186 syn keyword maximaFunc tldefint tlimit tlimswitch todd_coxeter to_lisp totaldisrep
|
|
187 syn keyword maximaFunc totalfourier totient tpartpol tr trace trace_options
|
|
188 syn keyword maximaFunc transcompile translate translate_file transpose transrun
|
|
189 syn keyword maximaFunc tr_array_as_ref tr_bound_function_applyp treillis treinat
|
|
190 syn keyword maximaFunc tr_file_tty_messagesp tr_float_can_branch_complex
|
|
191 syn keyword maximaFunc tr_function_call_default triangularize trigexpand trigexpandplus
|
|
192 syn keyword maximaFunc trigexpandtimes triginverses trigrat trigreduce trigsign trigsimp
|
|
193 syn keyword maximaFunc tr_numer tr_optimize_max_loop tr_semicompile tr_state_vars true
|
|
194 syn keyword maximaFunc trunc truncate tr_warn_bad_function_calls tr_warn_fexpr
|
|
195 syn keyword maximaFunc tr_warnings_get tr_warn_meval tr_warn_mode tr_warn_undeclared
|
|
196 syn keyword maximaFunc tr_warn_undefined_variable tr_windy ttyoff ueivects ufg ug
|
|
197 syn keyword maximaFunc ultraspherical undiff uniteigenvectors unitvector unknown unorder
|
|
198 syn keyword maximaFunc unsum untellrat untimer untrace uric uricci uriem uriemann
|
|
199 syn keyword maximaFunc use_fast_arrays uvect values vect_cross vectorpotential
|
|
200 syn keyword maximaFunc vectorsimp verb verbify verbose weyl with_stdout writefile
|
|
201 syn keyword maximaFunc xgraph_curves xthru zerobern zeroequiv zeromatrix zeta zeta%pi
|
|
202 syn match maximaOp "[\*\/\+\-\#\!\~\^\=\:\<\>\@]"
|
|
203 " ---------------------- END LIST OF ALL FUNCTIONS (EXCEPT KEYWORDS) ----------------------
|
|
204
|
|
205
|
|
206 syn case match
|
|
207
|
|
208 " Labels (supports maxima's goto)
|
|
209 syn match maximaLabel "^\s*<[a-zA-Z_][a-zA-Z0-9%_]*>"
|
|
210
|
|
211 " String and Character constants
|
|
212 " Highlight special characters (those which have a backslash) differently
|
|
213 syn match maximaSpecial contained "\\\d\d\d\|\\."
|
|
214 syn region maximaString start=+"+ skip=+\\\\\|\\"+ end=+"+ contains=maximaSpecial
|
|
215 syn match maximaCharacter "'[^\\]'"
|
|
216 syn match maximaSpecialChar "'\\.'"
|
|
217
|
|
218 " number with no fractional part or exponent
|
|
219 syn match maximaNumber /\<\d\+\>/
|
|
220 " floating point number with integer and fractional parts and optional exponent
|
|
221 syn match maximaFloat /\<\d\+\.\d*\([BbDdEeSs][-+]\=\d\+\)\=\>/
|
|
222 " floating point number with no integer part and optional exponent
|
|
223 syn match maximaFloat /\<\.\d\+\([BbDdEeSs][-+]\=\d\+\)\=\>/
|
|
224 " floating point number with no fractional part and optional exponent
|
|
225 syn match maximaFloat /\<\d\+[BbDdEeSs][-+]\=\d\+\>/
|
|
226
|
|
227 " Comments:
|
|
228 " maxima supports /* ... */ (like C)
|
|
229 syn keyword maximaTodo contained TODO Todo DEBUG
|
2034
|
230 syn region maximaCommentBlock start="/\*" end="\*/" contains=maximaString,maximaTodo,maximaCommentBlock
|
825
|
231
|
|
232 " synchronizing
|
|
233 syn sync match maximaSyncComment grouphere maximaCommentBlock "/*"
|
|
234 syn sync match maximaSyncComment groupthere NONE "*/"
|
|
235
|
|
236 " Define the default highlighting.
|
|
237 " For version 5.7 and earlier: only when not done already
|
|
238 " For version 5.8 and later: only when an item doesn't have highlighting yet
|
|
239 if version >= 508 || !exists("did_maxima_syntax_inits")
|
|
240 if version < 508
|
|
241 let did_maxima_syntax_inits = 1
|
|
242 command -nargs=+ HiLink hi link <args>
|
|
243 else
|
|
244 command -nargs=+ HiLink hi def link <args>
|
|
245 endif
|
|
246
|
|
247 HiLink maximaBraceError maximaError
|
|
248 HiLink maximaCmd maximaStatement
|
|
249 HiLink maximaCurlyError maximaError
|
|
250 HiLink maximaFuncCmd maximaStatement
|
|
251 HiLink maximaParenError maximaError
|
|
252
|
|
253 " The default methods for highlighting. Can be overridden later
|
|
254 HiLink maximaCharacter Character
|
|
255 HiLink maximaComma Function
|
|
256 HiLink maximaCommentBlock Comment
|
|
257 HiLink maximaConditional Conditional
|
|
258 HiLink maximaError Error
|
|
259 HiLink maximaFunc Delimiter
|
|
260 HiLink maximaOp Delimiter
|
|
261 HiLink maximaLabel PreProc
|
|
262 HiLink maximaNumber Number
|
|
263 HiLink maximaFloat Float
|
|
264 HiLink maximaRepeat Repeat
|
|
265 HiLink maximaSpecial Type
|
|
266 HiLink maximaSpecialChar SpecialChar
|
|
267 HiLink maximaStatement Statement
|
|
268 HiLink maximaString String
|
|
269 HiLink maximaTodo Todo
|
|
270
|
|
271 delcommand HiLink
|
|
272 endif
|
|
273
|
|
274 let b:current_syntax = "maxima"
|