xref: /vim-8.2.3635/runtime/syntax/form.vim (revision 37c64c78)
1071d4279SBram Moolenaar" Vim syntax file
2071d4279SBram Moolenaar" Language:	FORM
35c73622aSBram Moolenaar" Version: 2.0
4071d4279SBram Moolenaar" Maintainer:	Michael M. Tung <[email protected]>
55c73622aSBram Moolenaar" Last Change: <Thu Oct 23 13:11:21 CEST 2008>
65c73622aSBram Moolenaar" Past Change: <October 2008 Thomas Reiter [email protected]>
75c73622aSBram Moolenaar" Past Change: <Wed, 2005/05/25 09:24:58 arwagner wptx44>
8071d4279SBram Moolenaar
9071d4279SBram Moolenaar" First public release based on 'Symbolic Manipulation with FORM'
10071d4279SBram Moolenaar" by J.A.M. Vermaseren, CAN, Netherlands, 1991.
11071d4279SBram Moolenaar" This syntax file is still in development. Please send suggestions
12071d4279SBram Moolenaar" to the maintainer.
13071d4279SBram Moolenaar
1489bcfda6SBram Moolenaar" quit when a syntax file was already loaded
1589bcfda6SBram Moolenaarif exists("b:current_syntax")
16071d4279SBram Moolenaar  finish
17071d4279SBram Moolenaarendif
18071d4279SBram Moolenaar
19071d4279SBram Moolenaarsyn case ignore
20071d4279SBram Moolenaar
215c73622aSBram Moolenaar" a bunch of useful FORM keywords
22071d4279SBram Moolenaarsyn keyword formType		global local
23071d4279SBram Moolenaarsyn keyword formHeaderStatement	symbol symbols cfunction cfunctions
24071d4279SBram Moolenaarsyn keyword formHeaderStatement	function functions vector vectors
255c73622aSBram Moolenaarsyn keyword formHeaderStatement tensor tensors ctensor ctensors
265c73622aSBram Moolenaarsyn keyword formHeaderStatement	set sets index indices table ctable
27071d4279SBram Moolenaarsyn keyword formHeaderStatement	dimension dimensions unittrace
285c73622aSBram Moolenaarsyn keyword formConditional	if else elseif endif while
29071d4279SBram Moolenaarsyn keyword formConditional	repeat endrepeat label goto
305c73622aSBram Moolenaarsyn keyword formConditional     argument endargument exit
315c73622aSBram Moolenaarsyn keyword formConditional     inexpression inside term
325c73622aSBram Moolenaarsyn keyword formConditional     endinexpression endinside endterm
335c73622aSBram Moolenaarsyn keyword formStatement       abrackets also antibrackets antisymmetrize
345c73622aSBram Moolenaarsyn keyword formStatement       argexplode argimplode apply auto autodeclare
355c73622aSBram Moolenaarsyn keyword formStatement       brackets chainin chainout chisholm cleartable
365c73622aSBram Moolenaarsyn keyword formStatement       collect commuting compress contract
375c73622aSBram Moolenaarsyn keyword formStatement       cyclesymmetrize deallocatetable delete
385c73622aSBram Moolenaarsyn keyword formStatement       dimension discard disorder drop factarg fill
395c73622aSBram Moolenaarsyn keyword formStatement       fillexpression fixindex format funpowers hide
405c73622aSBram Moolenaarsyn keyword formStatement       identify idnew idold ifmatch inparallel
415c73622aSBram Moolenaarsyn keyword formStatement       insidefirst keep load makeinteger many metric
425c73622aSBram Moolenaarsyn keyword formStatement       moduleoption modulus multi multiply ndrop
435c73622aSBram Moolenaarsyn keyword formStatement       nfunctions nhide normalize notinparallel
445c73622aSBram Moolenaarsyn keyword formStatement       nprint nskip ntable ntensors nunhide nwrite
455c73622aSBram Moolenaarsyn keyword formStatement       off on once only polyfun pophide print
465c73622aSBram Moolenaarsyn keyword formStatement       printtable propercount pushhide ratio
475c73622aSBram Moolenaarsyn keyword formStatement       rcyclesymmetrize redefine renumber
485c73622aSBram Moolenaarsyn keyword formStatement       replaceinarg replaceloop save select
495c73622aSBram Moolenaarsyn keyword formStatement       setexitflag skip slavepatchsize sort splitarg
505c73622aSBram Moolenaarsyn keyword formStatement       splitfirstarg splitlastarg sum symmetrize
515c73622aSBram Moolenaarsyn keyword formStatement       tablebase testuse threadbucketsize totensor
525c73622aSBram Moolenaarsyn keyword formStatement       tovector trace4 tracen tryreplace unhide
535c73622aSBram Moolenaarsyn keyword formStatement       unittrace vectors write
545c73622aSBram Moolenaar" for compatibility with older FORM versions:
555c73622aSBram Moolenaarsyn keyword formStatement       id bracket count match traceN
56071d4279SBram Moolenaar
57071d4279SBram Moolenaar" some special functions
585c73622aSBram Moolenaarsyn keyword formStatement       abs_ bernoulli_ binom_ conjg_ count_
595c73622aSBram Moolenaarsyn keyword formStatement       d_ dd_ delta_ deltap_ denom_ distrib_
605c73622aSBram Moolenaarsyn keyword formStatement       dum_ dummy_ dummyten_ e_ exp_ fac_
615c73622aSBram Moolenaarsyn keyword formStatement       factorin_ firstbracket_ g5_ g6_ g7_
625c73622aSBram Moolenaarsyn keyword formStatement       g_ gcd_ gi_ integer_ invfac_ match_
635c73622aSBram Moolenaarsyn keyword formStatement       max_ maxpowerof_ min_ minpowerof_
645c73622aSBram Moolenaarsyn keyword formStatement       mod_ nargs_ nterms_ pattern_ poly_
655c73622aSBram Moolenaarsyn keyword formStatement       polyadd_ polydiv_ polygcd_ polyintfac_
665c73622aSBram Moolenaarsyn keyword formStatement       polymul_ polynorm_ polyrem_ polysub_
675c73622aSBram Moolenaarsyn keyword formStatement       replace_ reverse_ root_ setfun_ sig_
685c73622aSBram Moolenaarsyn keyword formStatement       sign_ sum_ sump_ table_ tbl_ term_
695c73622aSBram Moolenaarsyn keyword formStatement       termsin_ termsinbracket_ theta_ thetap_
705c73622aSBram Moolenaarsyn keyword formStatement	5_ 6_ 7_
715c73622aSBram Moolenaar
725c73622aSBram Moolenaarsyn keyword formReserved        sqrt_ ln_ sin_ cos_ tan_ asin_ acos_
735c73622aSBram Moolenaarsyn keyword formReserved        atan_ atan2_ sinh_ cosh_ tanh_ asinh_
745c73622aSBram Moolenaarsyn keyword formReserved        acosh_ atanh_ li2_ lin_
755c73622aSBram Moolenaar
765c73622aSBram Moolenaarsyn keyword formTodo            contained TODO FIXME XXX
775c73622aSBram Moolenaar
785c73622aSBram Moolenaarsyn match   formSpecial         display contained "\\\(n\|t\|b\|\\\|\"\)"
795c73622aSBram Moolenaarsyn match   formSpecial         display contained "%\(%\|e\|E\|s\|f\|\$\)"
805c73622aSBram Moolenaarsyn match   formSpecial         "\<N\d\+_[?]"
81071d4279SBram Moolenaar
82071d4279SBram Moolenaar" pattern matching for keywords
835c73622aSBram Moolenaarsyn match   formComment		"^\ *\*.*$" contains=formTodo
845c73622aSBram Moolenaarsyn match   formComment		"\;\ *\*.*$" contains=formTodo
855c73622aSBram Moolenaarsyn region  formString		start=+"+  end=+"+ contains=formSpecial
86071d4279SBram Moolenaarsyn region  formString		start=+'+  end=+'+
875c73622aSBram Moolenaarsyn region  formNestedString	start=+`+  end=+'+ contains=formNestedString
88*37c64c78SBram Moolenaarsyn match   formPreProc		"^\=\#[a-zA-Z][a-zA-Z0-9]*\>"
89071d4279SBram Moolenaarsyn match   formNumber		"\<\d\+\>"
90071d4279SBram Moolenaarsyn match   formNumber		"\<\d\+\.\d*\>"
91071d4279SBram Moolenaarsyn match   formNumber		"\.\d\+\>"
92071d4279SBram Moolenaarsyn match   formNumber		"-\d" contains=Number
93071d4279SBram Moolenaarsyn match   formNumber		"-\.\d" contains=Number
94071d4279SBram Moolenaarsyn match   formNumber		"i_\+\>"
95071d4279SBram Moolenaarsyn match   formNumber		"fac_\+\>"
965c73622aSBram Moolenaar" pattern matching wildcards
97*37c64c78SBram Moolenaarsyn match   formNumber		"?[a-zA-Z0-9]*"
985c73622aSBram Moolenaar" dollar-variables (new in 3.x)
99*37c64c78SBram Moolenaarsyn match   formNumber		"\\$[a-zA-Z0-9]*"
1005c73622aSBram Moolenaar" scalar products
101*37c64c78SBram Moolenaarsyn match   formNumber		"^\=[a-zA-Z][a-zA-Z0-9]*\.[a-zA-Z][a-zA-Z0-9]*\>"
1025c73622aSBram Moolenaar
103*37c64c78SBram Moolenaarsyn match   formDirective	"^\=\.[a-zA-Z][a-zA-Z0-9]*\>"
104071d4279SBram Moolenaar
105071d4279SBram Moolenaar" hi User Labels
106071d4279SBram Moolenaarsyn sync ccomment formComment minlines=10
107071d4279SBram Moolenaar
108071d4279SBram Moolenaar" Define the default highlighting.
10989bcfda6SBram Moolenaar" Only when an item doesn't have highlighting yet
110071d4279SBram Moolenaar
111f37506f6SBram Moolenaarhi def link formConditional	Conditional
112f37506f6SBram Moolenaarhi def link formNumber		Number
113f37506f6SBram Moolenaarhi def link formStatement		Statement
114f37506f6SBram Moolenaarhi def link formComment		Comment
115f37506f6SBram Moolenaarhi def link formPreProc		PreProc
116f37506f6SBram Moolenaarhi def link formDirective		PreProc
117f37506f6SBram Moolenaarhi def link formType		Type
118f37506f6SBram Moolenaarhi def link formString		String
119f37506f6SBram Moolenaarhi def link formNestedString	String
120f37506f6SBram Moolenaarhi def link formReserved           Error
121f37506f6SBram Moolenaarhi def link formTodo               Todo
122f37506f6SBram Moolenaarhi def link formSpecial            SpecialChar
123071d4279SBram Moolenaar
124071d4279SBram Moolenaarif !exists("form_enhanced_color")
125f37506f6SBram Moolenaarhi def link formHeaderStatement	Statement
126071d4279SBram Moolenaarelse
127071d4279SBram Moolenaar" enhanced color mode
128f37506f6SBram Moolenaarhi def link formHeaderStatement	HeaderStatement
129071d4279SBram Moolenaar" dark and a light background for local types
130071d4279SBram Moolenaarif &background == "dark"
131071d4279SBram Moolenaarhi HeaderStatement term=underline ctermfg=LightGreen guifg=LightGreen gui=bold
132071d4279SBram Moolenaarelse
133071d4279SBram Moolenaarhi HeaderStatement term=underline ctermfg=DarkGreen guifg=SeaGreen gui=bold
134071d4279SBram Moolenaarendif
135071d4279SBram Moolenaar" change slightly the default for dark gvim
136071d4279SBram Moolenaarif has("gui_running") && &background == "dark"
137071d4279SBram Moolenaarhi Conditional guifg=LightBlue gui=bold
138071d4279SBram Moolenaarhi Statement guifg=LightYellow
139071d4279SBram Moolenaarendif
140071d4279SBram Moolenaarendif
141071d4279SBram Moolenaar
142071d4279SBram Moolenaar
143071d4279SBram Moolenaar  let b:current_syntax = "form"
144071d4279SBram Moolenaar
145071d4279SBram Moolenaar" vim: ts=8
146