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