xref: /vim-8.2.3635/runtime/syntax/asm.vim (revision 555cdc2f)
1" Vim syntax file
2" Language:	GNU Assembler
3" Maintainer:	Erik Wognsen <[email protected]>
4"		Previous maintainer:
5"		Kevin Dahlhausen <[email protected]>
6" Last Change:	2010 Jan 9
7
8" For version 5.x: Clear all syntax items
9" For version 6.0 and later: Quit when a syntax file was already loaded
10if version < 600
11  syntax clear
12elseif exists("b:current_syntax")
13  finish
14endif
15
16syn case ignore
17
18" 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
48syn match asmComment		"#.*"
49syn region asmComment		start="/\*" end="\*/"
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 asmIdentifier Identifier
90  HiLink asmType	Type
91
92  delcommand HiLink
93endif
94
95let b:current_syntax = "asm"
96
97" vim: ts=8
98