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