blob: 40756de959df23ae1835fac73510b3d34fc56e5f [file] [log] [blame]
Bram Moolenaar071d4272004-06-13 20:20:40 +00001" Vim syntax file
2" Language: GNU Assembler
Bram Moolenaar555cdc22010-01-12 21:31:21 +01003" Maintainer: Erik Wognsen <erik.wognsen@gmail.com>
4" Previous maintainer:
5" Kevin Dahlhausen <kdahlhaus@yahoo.com>
6" Last Change: 2010 Jan 9
Bram Moolenaar071d4272004-06-13 20:20:40 +00007
8" For version 5.x: Clear all syntax items
Bram Moolenaar555cdc22010-01-12 21:31:21 +01009" For version 6.0 and later: Quit when a syntax file was already loaded
Bram Moolenaar071d4272004-06-13 20:20:40 +000010if version < 600
11 syntax clear
12elseif exists("b:current_syntax")
13 finish
14endif
15
16syn case ignore
17
Bram Moolenaar071d4272004-06-13 20:20:40 +000018" storage types
19syn match asmType "\.long"
20syn match asmType "\.ascii"
21syn match asmType "\.asciz"
22syn match asmType "\.byte"
23syn match asmType "\.double"
24syn match asmType "\.float"
25syn match asmType "\.hword"
26syn match asmType "\.int"
27syn match asmType "\.octa"
28syn match asmType "\.quad"
29syn match asmType "\.short"
30syn match asmType "\.single"
31syn match asmType "\.space"
32syn match asmType "\.string"
33syn match asmType "\.word"
34
35syn match asmLabel "[a-z_][a-z0-9_]*:"he=e-1
36syn match asmIdentifier "[a-z_][a-z0-9_]*"
37
38" Various #'s as defined by GAS ref manual sec 3.6.2.1
39" Technically, the first decNumber def is actually octal,
40" since the value of 0-7 octal is the same as 0-7 decimal,
41" I prefer to map it as decimal:
42syn match decNumber "0\+[1-7]\=[\t\n$,; ]"
43syn match decNumber "[1-9]\d*"
44syn match octNumber "0[0-7][0-7]\+"
45syn match hexNumber "0[xX][0-9a-fA-F]\+"
46syn match binNumber "0[bB][0-1]*"
47
Bram Moolenaar555cdc22010-01-12 21:31:21 +010048syn match asmComment "#.*"
49syn region asmComment start="/\*" end="\*/"
Bram Moolenaar071d4272004-06-13 20:20:40 +000050
51syn match asmInclude "\.include"
52syn match asmCond "\.if"
53syn match asmCond "\.else"
54syn match asmCond "\.endif"
55syn match asmMacro "\.macro"
56syn match asmMacro "\.endm"
57
58syn match asmDirective "\.[a-z][a-z]\+"
59
60
61syn case match
62
63" Define the default highlighting.
64" For version 5.7 and earlier: only when not done already
65" For version 5.8 and later: only when an item doesn't have highlighting yet
66if version >= 508 || !exists("did_asm_syntax_inits")
67 if version < 508
68 let did_asm_syntax_inits = 1
69 command -nargs=+ HiLink hi link <args>
70 else
71 command -nargs=+ HiLink hi def link <args>
72 endif
73
74 " The default methods for highlighting. Can be overridden later
75 HiLink asmSection Special
76 HiLink asmLabel Label
77 HiLink asmComment Comment
78 HiLink asmDirective Statement
79
80 HiLink asmInclude Include
81 HiLink asmCond PreCondit
82 HiLink asmMacro Macro
83
84 HiLink hexNumber Number
85 HiLink decNumber Number
86 HiLink octNumber Number
87 HiLink binNumber Number
88
Bram Moolenaar071d4272004-06-13 20:20:40 +000089 HiLink asmIdentifier Identifier
90 HiLink asmType Type
91
Bram Moolenaar071d4272004-06-13 20:20:40 +000092 delcommand HiLink
93endif
94
95let b:current_syntax = "asm"
96
97" vim: ts=8