Mercurial > hg > RemoteEditor > vim7
comparison runtime/syntax/vmasm.vim @ 0:76efa0be13f1
Initial revision
author | atsuki |
---|---|
date | Sat, 10 Nov 2007 15:07:22 +0900 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
-1:000000000000 | 0:76efa0be13f1 |
---|---|
1 " Vim syntax file | |
2 " Language: (VAX) Macro Assembly | |
3 " Maintainer: Tom Uijldert <tom.uijldert [at] cmg.nl> | |
4 " Last change: 2004 May 16 | |
5 " | |
6 " This is incomplete. Feel free to contribute... | |
7 " | |
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 case ignore | |
18 | |
19 " Partial list of register symbols | |
20 syn keyword vmasmReg r0 r1 r2 r3 r4 r5 r6 r7 r8 r9 r10 r11 r12 | |
21 syn keyword vmasmReg ap fp sp pc iv dv | |
22 | |
23 " All matches - order is important! | |
24 syn keyword vmasmOpcode adawi adwc ashl ashq bitb bitw bitl decb decw decl | |
25 syn keyword vmasmOpcode ediv emul incb incw incl mcomb mcomw mcoml | |
26 syn keyword vmasmOpcode movzbw movzbl movzwl popl pushl rotl sbwc | |
27 syn keyword vmasmOpcode cmpv cmpzv cmpc3 cmpc5 locc matchc movc3 movc5 | |
28 syn keyword vmasmOpcode movtc movtuc scanc skpc spanc crc extv extzv | |
29 syn keyword vmasmOpcode ffc ffs insv aobleq aoblss bbc bbs bbcci bbssi | |
30 syn keyword vmasmOpcode blbc blbs brb brw bsbb bsbw caseb casew casel | |
31 syn keyword vmasmOpcode jmp jsb rsb sobgeq sobgtr callg calls ret | |
32 syn keyword vmasmOpcode bicpsw bispsw bpt halt index movpsl nop popr pushr xfc | |
33 syn keyword vmasmOpcode insqhi insqti insque remqhi remqti remque | |
34 syn keyword vmasmOpcode addp4 addp6 ashp cmpp3 cmpp4 cvtpl cvtlp cvtps cvtpt | |
35 syn keyword vmasmOpcode cvtsp cvttp divp movp mulp subp4 subp6 editpc | |
36 syn keyword vmasmOpcode prober probew rei ldpctx svpctx mfpr mtpr bugw bugl | |
37 syn keyword vmasmOpcode vldl vldq vgathl vgathq vstl vstq vscatl vscatq | |
38 syn keyword vmasmOpcode vvcvt iota mfvp mtvp vsync | |
39 syn keyword vmasmOpcode beql[u] bgtr[u] blss[u] | |
40 syn match vmasmOpcode "\<add[bwlfdgh][23]\>" | |
41 syn match vmasmOpcode "\<bi[cs][bwl][23]\>" | |
42 syn match vmasmOpcode "\<clr[bwlqofdgh]\>" | |
43 syn match vmasmOpcode "\<cmp[bwlfdgh]\>" | |
44 syn match vmasmOpcode "\<cvt[bwlfdgh][bwlfdgh]\>" | |
45 syn match vmasmOpcode "\<cvtr[fdgh]l\>" | |
46 syn match vmasmOpcode "\<div[bwlfdgh][23]\>" | |
47 syn match vmasmOpcode "\<emod[fdgh]\>" | |
48 syn match vmasmOpcode "\<mneg[bwlfdgh]\>" | |
49 syn match vmasmOpcode "\<mov[bwlqofdgh]\>" | |
50 syn match vmasmOpcode "\<mul[bwlfdgh][23]\>" | |
51 syn match vmasmOpcode "\<poly[fdgh]\>" | |
52 syn match vmasmOpcode "\<sub[bwlfdgh][23]\>" | |
53 syn match vmasmOpcode "\<tst[bwlfdgh]\>" | |
54 syn match vmasmOpcode "\<xor[bwl][23]\>" | |
55 syn match vmasmOpcode "\<mova[bwlfqdgho]\>" | |
56 syn match vmasmOpcode "\<push[bwlfqdgho]\>" | |
57 syn match vmasmOpcode "\<acb[bwlfgdh]\>" | |
58 syn match vmasmOpcode "\<b[lng]equ\=\>" | |
59 syn match vmasmOpcode "\<b[cv][cs]\>" | |
60 syn match vmasmOpcode "\<bb[cs][cs]\>" | |
61 syn match vmasmOpcode "\<v[vs]add[lfdg]\>" | |
62 syn match vmasmOpcode "\<v[vs]cmp[lfdg]\>" | |
63 syn match vmasmOpcode "\<v[vs]div[fdg]\>" | |
64 syn match vmasmOpcode "\<v[vs]mul[lfdg]\>" | |
65 syn match vmasmOpcode "\<v[vs]sub[lfdg]\>" | |
66 syn match vmasmOpcode "\<v[vs]bi[cs]l\>" | |
67 syn match vmasmOpcode "\<v[vs]xorl\>" | |
68 syn match vmasmOpcode "\<v[vs]merge\>" | |
69 syn match vmasmOpcode "\<v[vs]s[rl]ll\>" | |
70 | |
71 " Various number formats | |
72 syn match vmasmdecNumber "[+-]\=[0-9]\+\>" | |
73 syn match vmasmdecNumber "^d[0-9]\+\>" | |
74 syn match vmasmhexNumber "^x[0-9a-f]\+\>" | |
75 syn match vmasmoctNumber "^o[0-7]\+\>" | |
76 syn match vmasmbinNumber "^b[01]\+\>" | |
77 syn match vmasmfloatNumber "[-+]\=[0-9]\+E[-+]\=[0-9]\+" | |
78 syn match vmasmfloatNumber "[-+]\=[0-9]\+\.[0-9]*\(E[-+]\=[0-9]\+\)\=" | |
79 | |
80 " Valid labels | |
81 syn match vmasmLabel "^[a-z_$.][a-z0-9_$.]\{,30}::\=" | |
82 syn match vmasmLabel "\<[0-9]\{1,5}\$:\=" " Local label | |
83 | |
84 " Character string constants | |
85 " Too complex really. Could be "<...>" but those could also be | |
86 " expressions. Don't know how to handle chosen delimiters | |
87 " ("^<sep>...<sep>") | |
88 " syn region vmasmString start="<" end=">" oneline | |
89 | |
90 " Operators | |
91 syn match vmasmOperator "[-+*/@&!\\]" | |
92 syn match vmasmOperator "=" | |
93 syn match vmasmOperator "==" " Global assignment | |
94 syn match vmasmOperator "%length(.*)" | |
95 syn match vmasmOperator "%locate(.*)" | |
96 syn match vmasmOperator "%extract(.*)" | |
97 syn match vmasmOperator "^[amfc]" | |
98 syn match vmasmOperator "[bwlg]^" | |
99 | |
100 syn match vmasmOperator "\<\(not_\)\=equal\>" | |
101 syn match vmasmOperator "\<less_equal\>" | |
102 syn match vmasmOperator "\<greater\(_equal\)\=\>" | |
103 syn match vmasmOperator "\<less_than\>" | |
104 syn match vmasmOperator "\<\(not_\)\=defined\>" | |
105 syn match vmasmOperator "\<\(not_\)\=blank\>" | |
106 syn match vmasmOperator "\<identical\>" | |
107 syn match vmasmOperator "\<different\>" | |
108 syn match vmasmOperator "\<eq\>" | |
109 syn match vmasmOperator "\<[gl]t\>" | |
110 syn match vmasmOperator "\<n\=df\>" | |
111 syn match vmasmOperator "\<n\=b\>" | |
112 syn match vmasmOperator "\<idn\>" | |
113 syn match vmasmOperator "\<[nlg]e\>" | |
114 syn match vmasmOperator "\<dif\>" | |
115 | |
116 " Special items for comments | |
117 syn keyword vmasmTodo contained todo | |
118 | |
119 " Comments | |
120 syn match vmasmComment ";.*" contains=vmasmTodo | |
121 | |
122 " Include | |
123 syn match vmasmInclude "\.library\>" | |
124 | |
125 " Macro definition | |
126 syn match vmasmMacro "\.macro\>" | |
127 syn match vmasmMacro "\.mexit\>" | |
128 syn match vmasmMacro "\.endm\>" | |
129 syn match vmasmMacro "\.mcall\>" | |
130 syn match vmasmMacro "\.mdelete\>" | |
131 | |
132 " Conditional assembly | |
133 syn match vmasmPreCond "\.iff\=\>" | |
134 syn match vmasmPreCond "\.if_false\>" | |
135 syn match vmasmPreCond "\.iftf\=\>" | |
136 syn match vmasmPreCond "\.if_true\(_false\)\=\>" | |
137 syn match vmasmPreCond "\.iif\>" | |
138 | |
139 " Loop control | |
140 syn match vmasmRepeat "\.irpc\=\>" | |
141 syn match vmasmRepeat "\.repeat\>" | |
142 syn match vmasmRepeat "\.rept\>" | |
143 syn match vmasmRepeat "\.endr\>" | |
144 | |
145 " Directives | |
146 syn match vmasmDirective "\.address\>" | |
147 syn match vmasmDirective "\.align\>" | |
148 syn match vmasmDirective "\.asci[cdiz]\>" | |
149 syn match vmasmDirective "\.blk[abdfghloqw]\>" | |
150 syn match vmasmDirective "\.\(signed_\)\=byte\>" | |
151 syn match vmasmDirective "\.\(no\)\=cross\>" | |
152 syn match vmasmDirective "\.debug\>" | |
153 syn match vmasmDirective "\.default displacement\>" | |
154 syn match vmasmDirective "\.[dfgh]_floating\>" | |
155 syn match vmasmDirective "\.disable\>" | |
156 syn match vmasmDirective "\.double\>" | |
157 syn match vmasmDirective "\.dsabl\>" | |
158 syn match vmasmDirective "\.enable\=\>" | |
159 syn match vmasmDirective "\.endc\=\>" | |
160 syn match vmasmDirective "\.entry\>" | |
161 syn match vmasmDirective "\.error\>" | |
162 syn match vmasmDirective "\.even\>" | |
163 syn match vmasmDirective "\.external\>" | |
164 syn match vmasmDirective "\.extrn\>" | |
165 syn match vmasmDirective "\.float\>" | |
166 syn match vmasmDirective "\.globa\=l\>" | |
167 syn match vmasmDirective "\.ident\>" | |
168 syn match vmasmDirective "\.link\>" | |
169 syn match vmasmDirective "\.list\>" | |
170 syn match vmasmDirective "\.long\>" | |
171 syn match vmasmDirective "\.mask\>" | |
172 syn match vmasmDirective "\.narg\>" | |
173 syn match vmasmDirective "\.nchr\>" | |
174 syn match vmasmDirective "\.nlist\>" | |
175 syn match vmasmDirective "\.ntype\>" | |
176 syn match vmasmDirective "\.octa\>" | |
177 syn match vmasmDirective "\.odd\>" | |
178 syn match vmasmDirective "\.opdef\>" | |
179 syn match vmasmDirective "\.packed\>" | |
180 syn match vmasmDirective "\.page\>" | |
181 syn match vmasmDirective "\.print\>" | |
182 syn match vmasmDirective "\.psect\>" | |
183 syn match vmasmDirective "\.quad\>" | |
184 syn match vmasmDirective "\.ref[1248]\>" | |
185 syn match vmasmDirective "\.ref16\>" | |
186 syn match vmasmDirective "\.restore\(_psect\)\=\>" | |
187 syn match vmasmDirective "\.save\(_psect\)\=\>" | |
188 syn match vmasmDirective "\.sbttl\>" | |
189 syn match vmasmDirective "\.\(no\)\=show\>" | |
190 syn match vmasmDirective "\.\(sub\)\=title\>" | |
191 syn match vmasmDirective "\.transfer\>" | |
192 syn match vmasmDirective "\.warn\>" | |
193 syn match vmasmDirective "\.weak\>" | |
194 syn match vmasmDirective "\.\(signed_\)\=word\>" | |
195 | |
196 syn case match | |
197 | |
198 " Define the default highlighting. | |
199 " For version 5.7 and earlier: only when not done already | |
200 " For version 5.8 and later: only when an item doesn't have highlighting yet | |
201 if version >= 508 || !exists("did_macro_syntax_inits") | |
202 if version < 508 | |
203 let did_macro_syntax_inits = 1 | |
204 command -nargs=+ HiLink hi link <args> | |
205 else | |
206 command -nargs=+ HiLink hi def link <args> | |
207 endif | |
208 | |
209 " The default methods for highlighting. Can be overridden later | |
210 " Comment Constant Error Identifier PreProc Special Statement Todo Type | |
211 " | |
212 " Constant Boolean Character Number String | |
213 " Identifier Function | |
214 " PreProc Define Include Macro PreCondit | |
215 " Special Debug Delimiter SpecialChar SpecialComment Tag | |
216 " Statement Conditional Exception Keyword Label Operator Repeat | |
217 " Type StorageClass Structure Typedef | |
218 | |
219 HiLink vmasmComment Comment | |
220 HiLink vmasmTodo Todo | |
221 | |
222 HiLink vmasmhexNumber Number " Constant | |
223 HiLink vmasmoctNumber Number " Constant | |
224 HiLink vmasmbinNumber Number " Constant | |
225 HiLink vmasmdecNumber Number " Constant | |
226 HiLink vmasmfloatNumber Number " Constant | |
227 | |
228 " HiLink vmasmString String " Constant | |
229 | |
230 HiLink vmasmReg Identifier | |
231 HiLink vmasmOperator Identifier | |
232 | |
233 HiLink vmasmInclude Include " PreProc | |
234 HiLink vmasmMacro Macro " PreProc | |
235 " HiLink vmasmMacroParam Keyword " Statement | |
236 | |
237 HiLink vmasmDirective Special | |
238 HiLink vmasmPreCond Special | |
239 | |
240 | |
241 HiLink vmasmOpcode Statement | |
242 HiLink vmasmCond Conditional " Statement | |
243 HiLink vmasmRepeat Repeat " Statement | |
244 | |
245 HiLink vmasmLabel Type | |
246 delcommand HiLink | |
247 endif | |
248 | |
249 let b:current_syntax = "vmasm" | |
250 | |
251 " vim: ts=8 sw=2 |