xref: /vim-8.2.3635/runtime/syntax/vmasm.vim (revision f37506f6)
1071d4279SBram Moolenaar" Vim syntax file
2071d4279SBram Moolenaar" Language:	(VAX) Macro Assembly
3071d4279SBram Moolenaar" Maintainer:	Tom Uijldert <tom.uijldert [at] cmg.nl>
4071d4279SBram Moolenaar" Last change:	2004 May 16
5071d4279SBram Moolenaar"
6071d4279SBram Moolenaar" This is incomplete. Feel free to contribute...
7071d4279SBram Moolenaar"
8071d4279SBram Moolenaar
989bcfda6SBram Moolenaar" quit when a syntax file was already loaded
1089bcfda6SBram Moolenaarif exists("b:current_syntax")
11071d4279SBram Moolenaar  finish
12071d4279SBram Moolenaarendif
13071d4279SBram Moolenaar
14071d4279SBram Moolenaarsyn case ignore
15071d4279SBram Moolenaar
16071d4279SBram Moolenaar" Partial list of register symbols
17071d4279SBram Moolenaarsyn keyword vmasmReg	r0 r1 r2 r3 r4 r5 r6 r7 r8 r9 r10 r11 r12
18071d4279SBram Moolenaarsyn keyword vmasmReg	ap fp sp pc iv dv
19071d4279SBram Moolenaar
20071d4279SBram Moolenaar" All matches - order is important!
21071d4279SBram Moolenaarsyn keyword vmasmOpcode adawi adwc ashl ashq bitb bitw bitl decb decw decl
22071d4279SBram Moolenaarsyn keyword vmasmOpcode ediv emul incb incw incl mcomb mcomw mcoml
23071d4279SBram Moolenaarsyn keyword vmasmOpcode movzbw movzbl movzwl popl pushl rotl sbwc
24071d4279SBram Moolenaarsyn keyword vmasmOpcode cmpv cmpzv cmpc3 cmpc5 locc matchc movc3 movc5
25071d4279SBram Moolenaarsyn keyword vmasmOpcode movtc movtuc scanc skpc spanc crc extv extzv
26071d4279SBram Moolenaarsyn keyword vmasmOpcode ffc ffs insv aobleq aoblss bbc bbs bbcci bbssi
27071d4279SBram Moolenaarsyn keyword vmasmOpcode blbc blbs brb brw bsbb bsbw caseb casew casel
28071d4279SBram Moolenaarsyn keyword vmasmOpcode jmp jsb rsb sobgeq sobgtr callg calls ret
29071d4279SBram Moolenaarsyn keyword vmasmOpcode bicpsw bispsw bpt halt index movpsl nop popr pushr xfc
30071d4279SBram Moolenaarsyn keyword vmasmOpcode insqhi insqti insque remqhi remqti remque
31071d4279SBram Moolenaarsyn keyword vmasmOpcode addp4 addp6 ashp cmpp3 cmpp4 cvtpl cvtlp cvtps cvtpt
32071d4279SBram Moolenaarsyn keyword vmasmOpcode cvtsp cvttp divp movp mulp subp4 subp6 editpc
33071d4279SBram Moolenaarsyn keyword vmasmOpcode prober probew rei ldpctx svpctx mfpr mtpr bugw bugl
34071d4279SBram Moolenaarsyn keyword vmasmOpcode vldl vldq vgathl vgathq vstl vstq vscatl vscatq
35071d4279SBram Moolenaarsyn keyword vmasmOpcode vvcvt iota mfvp mtvp vsync
36071d4279SBram Moolenaarsyn keyword vmasmOpcode beql[u] bgtr[u] blss[u]
37071d4279SBram Moolenaarsyn match vmasmOpcode "\<add[bwlfdgh][23]\>"
38071d4279SBram Moolenaarsyn match vmasmOpcode "\<bi[cs][bwl][23]\>"
39071d4279SBram Moolenaarsyn match vmasmOpcode "\<clr[bwlqofdgh]\>"
40071d4279SBram Moolenaarsyn match vmasmOpcode "\<cmp[bwlfdgh]\>"
41071d4279SBram Moolenaarsyn match vmasmOpcode "\<cvt[bwlfdgh][bwlfdgh]\>"
42071d4279SBram Moolenaarsyn match vmasmOpcode "\<cvtr[fdgh]l\>"
43071d4279SBram Moolenaarsyn match vmasmOpcode "\<div[bwlfdgh][23]\>"
44071d4279SBram Moolenaarsyn match vmasmOpcode "\<emod[fdgh]\>"
45071d4279SBram Moolenaarsyn match vmasmOpcode "\<mneg[bwlfdgh]\>"
46071d4279SBram Moolenaarsyn match vmasmOpcode "\<mov[bwlqofdgh]\>"
47071d4279SBram Moolenaarsyn match vmasmOpcode "\<mul[bwlfdgh][23]\>"
48071d4279SBram Moolenaarsyn match vmasmOpcode "\<poly[fdgh]\>"
49071d4279SBram Moolenaarsyn match vmasmOpcode "\<sub[bwlfdgh][23]\>"
50071d4279SBram Moolenaarsyn match vmasmOpcode "\<tst[bwlfdgh]\>"
51071d4279SBram Moolenaarsyn match vmasmOpcode "\<xor[bwl][23]\>"
52071d4279SBram Moolenaarsyn match vmasmOpcode "\<mova[bwlfqdgho]\>"
53071d4279SBram Moolenaarsyn match vmasmOpcode "\<push[bwlfqdgho]\>"
54071d4279SBram Moolenaarsyn match vmasmOpcode "\<acb[bwlfgdh]\>"
55071d4279SBram Moolenaarsyn match vmasmOpcode "\<b[lng]equ\=\>"
56071d4279SBram Moolenaarsyn match vmasmOpcode "\<b[cv][cs]\>"
57071d4279SBram Moolenaarsyn match vmasmOpcode "\<bb[cs][cs]\>"
58071d4279SBram Moolenaarsyn match vmasmOpcode "\<v[vs]add[lfdg]\>"
59071d4279SBram Moolenaarsyn match vmasmOpcode "\<v[vs]cmp[lfdg]\>"
60071d4279SBram Moolenaarsyn match vmasmOpcode "\<v[vs]div[fdg]\>"
61071d4279SBram Moolenaarsyn match vmasmOpcode "\<v[vs]mul[lfdg]\>"
62071d4279SBram Moolenaarsyn match vmasmOpcode "\<v[vs]sub[lfdg]\>"
63071d4279SBram Moolenaarsyn match vmasmOpcode "\<v[vs]bi[cs]l\>"
64071d4279SBram Moolenaarsyn match vmasmOpcode "\<v[vs]xorl\>"
65071d4279SBram Moolenaarsyn match vmasmOpcode "\<v[vs]merge\>"
66071d4279SBram Moolenaarsyn match vmasmOpcode "\<v[vs]s[rl]ll\>"
67071d4279SBram Moolenaar
68071d4279SBram Moolenaar" Various number formats
69071d4279SBram Moolenaarsyn match vmasmdecNumber	"[+-]\=[0-9]\+\>"
70071d4279SBram Moolenaarsyn match vmasmdecNumber	"^d[0-9]\+\>"
71071d4279SBram Moolenaarsyn match vmasmhexNumber	"^x[0-9a-f]\+\>"
72071d4279SBram Moolenaarsyn match vmasmoctNumber	"^o[0-7]\+\>"
73071d4279SBram Moolenaarsyn match vmasmbinNumber	"^b[01]\+\>"
74071d4279SBram Moolenaarsyn match vmasmfloatNumber	"[-+]\=[0-9]\+E[-+]\=[0-9]\+"
75071d4279SBram Moolenaarsyn match vmasmfloatNumber	"[-+]\=[0-9]\+\.[0-9]*\(E[-+]\=[0-9]\+\)\="
76071d4279SBram Moolenaar
77071d4279SBram Moolenaar" Valid labels
78071d4279SBram Moolenaarsyn match vmasmLabel		"^[a-z_$.][a-z0-9_$.]\{,30}::\="
79071d4279SBram Moolenaarsyn match vmasmLabel		"\<[0-9]\{1,5}\$:\="          " Local label
80071d4279SBram Moolenaar
81071d4279SBram Moolenaar" Character string constants
82071d4279SBram Moolenaar"       Too complex really. Could be "<...>" but those could also be
83071d4279SBram Moolenaar"       expressions. Don't know how to handle chosen delimiters
84071d4279SBram Moolenaar"       ("^<sep>...<sep>")
85071d4279SBram Moolenaar" syn region vmasmString		start="<" end=">" oneline
86071d4279SBram Moolenaar
87071d4279SBram Moolenaar" Operators
88071d4279SBram Moolenaarsyn match vmasmOperator	"[-+*/@&!\\]"
89071d4279SBram Moolenaarsyn match vmasmOperator	"="
90071d4279SBram Moolenaarsyn match vmasmOperator	"=="		" Global assignment
91071d4279SBram Moolenaarsyn match vmasmOperator	"%length(.*)"
92071d4279SBram Moolenaarsyn match vmasmOperator	"%locate(.*)"
93071d4279SBram Moolenaarsyn match vmasmOperator	"%extract(.*)"
94071d4279SBram Moolenaarsyn match vmasmOperator	"^[amfc]"
95071d4279SBram Moolenaarsyn match vmasmOperator	"[bwlg]^"
96071d4279SBram Moolenaar
97071d4279SBram Moolenaarsyn match vmasmOperator	"\<\(not_\)\=equal\>"
98071d4279SBram Moolenaarsyn match vmasmOperator	"\<less_equal\>"
99071d4279SBram Moolenaarsyn match vmasmOperator	"\<greater\(_equal\)\=\>"
100071d4279SBram Moolenaarsyn match vmasmOperator	"\<less_than\>"
101071d4279SBram Moolenaarsyn match vmasmOperator	"\<\(not_\)\=defined\>"
102071d4279SBram Moolenaarsyn match vmasmOperator	"\<\(not_\)\=blank\>"
103071d4279SBram Moolenaarsyn match vmasmOperator	"\<identical\>"
104071d4279SBram Moolenaarsyn match vmasmOperator	"\<different\>"
105071d4279SBram Moolenaarsyn match vmasmOperator	"\<eq\>"
106071d4279SBram Moolenaarsyn match vmasmOperator	"\<[gl]t\>"
107071d4279SBram Moolenaarsyn match vmasmOperator	"\<n\=df\>"
108071d4279SBram Moolenaarsyn match vmasmOperator	"\<n\=b\>"
109071d4279SBram Moolenaarsyn match vmasmOperator	"\<idn\>"
110071d4279SBram Moolenaarsyn match vmasmOperator	"\<[nlg]e\>"
111071d4279SBram Moolenaarsyn match vmasmOperator	"\<dif\>"
112071d4279SBram Moolenaar
113071d4279SBram Moolenaar" Special items for comments
114071d4279SBram Moolenaarsyn keyword vmasmTodo		contained todo
115071d4279SBram Moolenaar
116071d4279SBram Moolenaar" Comments
117071d4279SBram Moolenaarsyn match vmasmComment		";.*" contains=vmasmTodo
118071d4279SBram Moolenaar
119071d4279SBram Moolenaar" Include
120071d4279SBram Moolenaarsyn match vmasmInclude		"\.library\>"
121071d4279SBram Moolenaar
122071d4279SBram Moolenaar" Macro definition
123071d4279SBram Moolenaarsyn match vmasmMacro		"\.macro\>"
124071d4279SBram Moolenaarsyn match vmasmMacro		"\.mexit\>"
125071d4279SBram Moolenaarsyn match vmasmMacro		"\.endm\>"
126071d4279SBram Moolenaarsyn match vmasmMacro		"\.mcall\>"
127071d4279SBram Moolenaarsyn match vmasmMacro		"\.mdelete\>"
128071d4279SBram Moolenaar
129071d4279SBram Moolenaar" Conditional assembly
130071d4279SBram Moolenaarsyn match vmasmPreCond		"\.iff\=\>"
131071d4279SBram Moolenaarsyn match vmasmPreCond		"\.if_false\>"
132071d4279SBram Moolenaarsyn match vmasmPreCond		"\.iftf\=\>"
133071d4279SBram Moolenaarsyn match vmasmPreCond		"\.if_true\(_false\)\=\>"
134071d4279SBram Moolenaarsyn match vmasmPreCond		"\.iif\>"
135071d4279SBram Moolenaar
136071d4279SBram Moolenaar" Loop control
137071d4279SBram Moolenaarsyn match vmasmRepeat		"\.irpc\=\>"
138071d4279SBram Moolenaarsyn match vmasmRepeat		"\.repeat\>"
139071d4279SBram Moolenaarsyn match vmasmRepeat		"\.rept\>"
140071d4279SBram Moolenaarsyn match vmasmRepeat		"\.endr\>"
141071d4279SBram Moolenaar
142071d4279SBram Moolenaar" Directives
143071d4279SBram Moolenaarsyn match vmasmDirective	"\.address\>"
144071d4279SBram Moolenaarsyn match vmasmDirective	"\.align\>"
145071d4279SBram Moolenaarsyn match vmasmDirective	"\.asci[cdiz]\>"
146071d4279SBram Moolenaarsyn match vmasmDirective	"\.blk[abdfghloqw]\>"
147071d4279SBram Moolenaarsyn match vmasmDirective	"\.\(signed_\)\=byte\>"
148071d4279SBram Moolenaarsyn match vmasmDirective	"\.\(no\)\=cross\>"
149071d4279SBram Moolenaarsyn match vmasmDirective	"\.debug\>"
150071d4279SBram Moolenaarsyn match vmasmDirective	"\.default displacement\>"
151071d4279SBram Moolenaarsyn match vmasmDirective	"\.[dfgh]_floating\>"
152071d4279SBram Moolenaarsyn match vmasmDirective	"\.disable\>"
153071d4279SBram Moolenaarsyn match vmasmDirective	"\.double\>"
154071d4279SBram Moolenaarsyn match vmasmDirective	"\.dsabl\>"
155071d4279SBram Moolenaarsyn match vmasmDirective	"\.enable\=\>"
156071d4279SBram Moolenaarsyn match vmasmDirective	"\.endc\=\>"
157071d4279SBram Moolenaarsyn match vmasmDirective	"\.entry\>"
158071d4279SBram Moolenaarsyn match vmasmDirective	"\.error\>"
159071d4279SBram Moolenaarsyn match vmasmDirective	"\.even\>"
160071d4279SBram Moolenaarsyn match vmasmDirective	"\.external\>"
161071d4279SBram Moolenaarsyn match vmasmDirective	"\.extrn\>"
162071d4279SBram Moolenaarsyn match vmasmDirective	"\.float\>"
163071d4279SBram Moolenaarsyn match vmasmDirective	"\.globa\=l\>"
164071d4279SBram Moolenaarsyn match vmasmDirective	"\.ident\>"
165071d4279SBram Moolenaarsyn match vmasmDirective	"\.link\>"
166071d4279SBram Moolenaarsyn match vmasmDirective	"\.list\>"
167071d4279SBram Moolenaarsyn match vmasmDirective	"\.long\>"
168071d4279SBram Moolenaarsyn match vmasmDirective	"\.mask\>"
169071d4279SBram Moolenaarsyn match vmasmDirective	"\.narg\>"
170071d4279SBram Moolenaarsyn match vmasmDirective	"\.nchr\>"
171071d4279SBram Moolenaarsyn match vmasmDirective	"\.nlist\>"
172071d4279SBram Moolenaarsyn match vmasmDirective	"\.ntype\>"
173071d4279SBram Moolenaarsyn match vmasmDirective	"\.octa\>"
174071d4279SBram Moolenaarsyn match vmasmDirective	"\.odd\>"
175071d4279SBram Moolenaarsyn match vmasmDirective	"\.opdef\>"
176071d4279SBram Moolenaarsyn match vmasmDirective	"\.packed\>"
177071d4279SBram Moolenaarsyn match vmasmDirective	"\.page\>"
178071d4279SBram Moolenaarsyn match vmasmDirective	"\.print\>"
179071d4279SBram Moolenaarsyn match vmasmDirective	"\.psect\>"
180071d4279SBram Moolenaarsyn match vmasmDirective	"\.quad\>"
181071d4279SBram Moolenaarsyn match vmasmDirective	"\.ref[1248]\>"
182071d4279SBram Moolenaarsyn match vmasmDirective	"\.ref16\>"
183071d4279SBram Moolenaarsyn match vmasmDirective	"\.restore\(_psect\)\=\>"
184071d4279SBram Moolenaarsyn match vmasmDirective	"\.save\(_psect\)\=\>"
185071d4279SBram Moolenaarsyn match vmasmDirective	"\.sbttl\>"
186071d4279SBram Moolenaarsyn match vmasmDirective	"\.\(no\)\=show\>"
187071d4279SBram Moolenaarsyn match vmasmDirective	"\.\(sub\)\=title\>"
188071d4279SBram Moolenaarsyn match vmasmDirective	"\.transfer\>"
189071d4279SBram Moolenaarsyn match vmasmDirective	"\.warn\>"
190071d4279SBram Moolenaarsyn match vmasmDirective	"\.weak\>"
191071d4279SBram Moolenaarsyn match vmasmDirective	"\.\(signed_\)\=word\>"
192071d4279SBram Moolenaar
193071d4279SBram Moolenaarsyn case match
194071d4279SBram Moolenaar
195071d4279SBram Moolenaar" Define the default highlighting.
19689bcfda6SBram Moolenaar" Only when an item doesn't have highlighting yet
197071d4279SBram Moolenaar
198071d4279SBram Moolenaar" The default methods for highlighting.  Can be overridden later
199071d4279SBram Moolenaar" Comment Constant Error Identifier PreProc Special Statement Todo Type
200071d4279SBram Moolenaar"
201071d4279SBram Moolenaar" Constant		Boolean Character Number String
202071d4279SBram Moolenaar" Identifier		Function
203071d4279SBram Moolenaar" PreProc		Define Include Macro PreCondit
204071d4279SBram Moolenaar" Special		Debug Delimiter SpecialChar SpecialComment Tag
205071d4279SBram Moolenaar" Statement		Conditional Exception Keyword Label Operator Repeat
206071d4279SBram Moolenaar" Type		StorageClass Structure Typedef
207071d4279SBram Moolenaar
208*f37506f6SBram Moolenaarhi def link vmasmComment		Comment
209*f37506f6SBram Moolenaarhi def link vmasmTodo		Todo
210071d4279SBram Moolenaar
211*f37506f6SBram Moolenaarhi def link vmasmhexNumber		Number		" Constant
212*f37506f6SBram Moolenaarhi def link vmasmoctNumber		Number		" Constant
213*f37506f6SBram Moolenaarhi def link vmasmbinNumber		Number		" Constant
214*f37506f6SBram Moolenaarhi def link vmasmdecNumber		Number		" Constant
215*f37506f6SBram Moolenaarhi def link vmasmfloatNumber	Number		" Constant
216071d4279SBram Moolenaar
217*f37506f6SBram Moolenaar"  hi def link vmasmString		String		" Constant
218071d4279SBram Moolenaar
219*f37506f6SBram Moolenaarhi def link vmasmReg		Identifier
220*f37506f6SBram Moolenaarhi def link vmasmOperator		Identifier
221071d4279SBram Moolenaar
222*f37506f6SBram Moolenaarhi def link vmasmInclude		Include		" PreProc
223*f37506f6SBram Moolenaarhi def link vmasmMacro		Macro		" PreProc
224*f37506f6SBram Moolenaar" hi def link vmasmMacroParam	Keyword		" Statement
225071d4279SBram Moolenaar
226*f37506f6SBram Moolenaarhi def link vmasmDirective		Special
227*f37506f6SBram Moolenaarhi def link vmasmPreCond		Special
228071d4279SBram Moolenaar
229071d4279SBram Moolenaar
230*f37506f6SBram Moolenaarhi def link vmasmOpcode		Statement
231*f37506f6SBram Moolenaarhi def link vmasmCond		Conditional	" Statement
232*f37506f6SBram Moolenaarhi def link vmasmRepeat		Repeat		" Statement
233071d4279SBram Moolenaar
234*f37506f6SBram Moolenaarhi def link vmasmLabel		Type
235071d4279SBram Moolenaar
236071d4279SBram Moolenaarlet b:current_syntax = "vmasm"
237071d4279SBram Moolenaar
238071d4279SBram Moolenaar" vim: ts=8 sw=2
239