Bram Moolenaar | 779b74b | 2006-04-10 14:55:34 +0000 | [diff] [blame] | 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 |
| 230 | syn region maximaCommentBlock start="/\*" end="\*/" contains=maximaString,maximaTodo |
| 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" |