view runtime/syntax/mma.vim @ 170:8c60f65311fa v7.0052

updated for version 7.0052
author vimboss
date Sat, 26 Feb 2005 23:04:13 +0000
parents 3fc0f57ecb91
children 8d34af900bae
line wrap: on
line source

" Vim syntax file
" Language:     Mathematica
" Maintainer:   Wolfgang Waltenberger <wwalten@ben.tuwien.ac.at>
" Last Change:  Thu 26 Apr 2001 13:20:03 CEST

if version < 600
	syntax clear
elseif exists("b:current_syntax")
	finish
endif

syn match mmaError "\*)"
syn match mmaFixme "FIXME"
syn region mmaComment start=+(\*+ end=+\*)+ skipempty contains=mmaFixme
syn match mmaMessage "\a*::\a*"
syn region mmaString start=+'+    end=+'+
syn region mmaString start=+"+    end=+"+
syn region mmaString start=+\\\"+ end=+\"+
syn region mmaString start=+\"+   end=+\"+

syn match mmaVariable "$\a*"

syn match mmaPattern "[A-Za-z01-9`]*_\{1,3}"
syn match mmaPattern "[A-Za-z01-9`]*_\{1,3}\(Integer\|Real\|Pattern\|Symbol\)"
syn match mmaPattern "[A-Za-z01-9`]*_\{1,3}\(Rational\|Complex\|Head\)"
syn match mmaPattern "[A-Za-z01-9`]*_\{1,3}?[A-Za-z01-9`]*"

" prefix/infix/postfix notations
syn match mmaGenericFunction "[A-Za-z01-9`]*\s*\(\[\|@\)"he=e-1
syn match mmaGenericFunction "[A-Za-z01-9`]*\s*\(/@\|@@\)"he=e-2
syn match mmaGenericFunction "\~\s*[A-Za-z01-9`]*\s*\~"hs=s+1,he=e-1
syn match mmaGenericFunction "//\s*[A-Za-z01-9`]*"hs=s+2
syn match mmaOperator "/;"

syn match mmaPureFunction "#\d*"
syn match mmaPureFunction "&"

syn match mmaUnicode "\\\[[a-zA-Z01-9]*\]"

if version >= 508 || !exists("did_mma_syn_inits")
	if version < 508
		let did_mma_syn_inits = 1
		command -nargs=+ HiLink hi link <args>
	else
		command -nargs=+ HiLink hi def link <args>
	endif

	HiLink mmaOperator	   Operator
	HiLink mmaVariable	   Identifier
	HiLink mmaString	   String
	HiLink mmaUnicode	   String
	HiLink mmaMessage	   Identifier
	HiLink mmaPattern	   Identifier
	HiLink mmaGenericFunction  Function
	HiLink mmaError		   Error
	HiLink mmaFixme		   Error
	HiLink mmaComment	   Comment
	HiLink mmaPureFunction	   Operator

	delcommand HiLink
endif

let b:current_syntax = "mma"