xref: /vim-8.2.3635/runtime/syntax/asm.vim (revision 071d4279)
1" Vim syntax file
2" Language:	GNU Assembler
3" Maintainer:	Kevin Dahlhausen <[email protected]>
4" Last Change:	2002 Sep 19
5
6" For version 5.x: Clear all syntax items
7" For version 6.x: Quit when a syntax file was already loaded
8if version < 600
9  syntax clear
10elseif exists("b:current_syntax")
11  finish
12endif
13
14syn case ignore
15
16
17" storage types
18syn match asmType "\.long"
19syn match asmType "\.ascii"
20syn match asmType "\.asciz"
21syn match asmType "\.byte"
22syn match asmType "\.double"
23syn match asmType "\.float"
24syn match asmType "\.hword"
25syn match asmType "\.int"
26syn match asmType "\.octa"
27syn match asmType "\.quad"
28syn match asmType "\.short"
29syn match asmType "\.single"
30syn match asmType "\.space"
31syn match asmType "\.string"
32syn match asmType "\.word"
33
34syn match asmLabel		"[a-z_][a-z0-9_]*:"he=e-1
35syn match asmIdentifier		"[a-z_][a-z0-9_]*"
36
37" Various #'s as defined by GAS ref manual sec 3.6.2.1
38" Technically, the first decNumber def is actually octal,
39" since the value of 0-7 octal is the same as 0-7 decimal,
40" I prefer to map it as decimal:
41syn match decNumber		"0\+[1-7]\=[\t\n$,; ]"
42syn match decNumber		"[1-9]\d*"
43syn match octNumber		"0[0-7][0-7]\+"
44syn match hexNumber		"0[xX][0-9a-fA-F]\+"
45syn match binNumber		"0[bB][0-1]*"
46
47
48syn match asmSpecialComment	";\*\*\*.*"
49syn match asmComment		";.*"hs=s+1
50
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
89  HiLink asmSpecialComment Comment
90  HiLink asmIdentifier Identifier
91  HiLink asmType	Type
92
93  " My default color overrides:
94  " hi asmSpecialComment ctermfg=red
95  " hi asmIdentifier ctermfg=lightcyan
96  " hi asmType ctermbg=black ctermfg=brown
97
98  delcommand HiLink
99endif
100
101let b:current_syntax = "asm"
102
103" vim: ts=8
104