/runtime/syntax/maxima.vim

https://bitbucket.org/ultra_iter/vim-qt · Vim Script · 274 lines · 230 code · 16 blank · 28 comment · 7 complexity · 0b0a58d6704469429e3e627e6894aa61 MD5 · raw file

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