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