2 " Language: x86/x64 GNU Disassembler (objdump -d -Mintel)
3 " Maintainer: @shiracamus <shiracamus@gmail.com>
4 " Last Change: 2013 Dec 30
6 " For version 5.x: Clear all syntax items
7 " For version 6.0 and later: Quit when a syntax file was already loaded
10 elseif exists("b:current_syntax")
19 syn match disOffset "[+-]"
20 syn match disNumber "[+-]\?\<0x[0-9a-f]\+\>" contains=disOffset
21 syn match disNumber "[+-]\?\<[0-9a-f]\+\>" contains=disOffset
23 syn match disRegister "\<[re]\?[abcd][xhl]\>"
24 syn match disRegister "\<[re]\?[sd]il\?\>"
25 syn match disRegister "\<[re]\?[sbi]pl\?\>"
26 syn match disRegister "\<r[0-9]\+[dwb]\?\>"
27 syn match disRegister "[^\t]\<[cdefgs]s\>"hs=s+1
30 syn match disSection " \.[a-z][a-z_\.-]*:"he=e-1
31 syn match disSection "@[a-z0-9_][a-z0-9_-]\+"hs=s+1 contains=disAt,disNumber
33 syn match disLabel "<[a-z0-9_.][a-z0-9_.@+-]\+>"hs=s+1,he=e-1 contains=disNumber,disSection
34 syn match disHexDump ":\t\([0-9a-f][0-9a-f][ \t]\)\+"hs=s+1
36 syn match disError "<internal disassembler error>"
37 syn match disError "(bad)"
39 syn keyword disTodo contained TODO
41 syn region disComment start="/\*" end="\*/" contains=disTodo
42 syn match disComment "[#;!|].*" contains=disLabel,disTodo
43 syn match disStatement "//.*" contains=cStatement
45 syn match disSpecial display contained "\\\(x\x\+\|\o\{1,3}\|.\|$\)"
46 syn region disString start=+"+ skip=+\\\\\|\\"\|\\$+ excludenl end=+"+ end=+$+ keepend contains=disSpecial
47 syn region disString start=+'+ skip=+\\\\\|\\'\|\\$+ excludenl end=+'+ end=+$+ keepend contains=disSpecial
49 syn match disFormat ": \+file format "
50 syn match disTitle "^[^ ]\+: \+file format .*$" contains=disFormat
52 syn match disMacro "FWORD"
53 syn match disMacro "QWORD"
54 syn match disMacro "DWORD"
55 syn match disMacro "BYTE"
56 syn match disMacro "PTR"
58 syn match disData ".word"
59 syn match disData ".short"
60 syn match disData ".byte"
62 " Opecode matched disNumber
63 syn match disOpecode "\<add "
64 syn match disOpecode "\<adc "
65 syn match disOpecode "\<dec "
66 syn match disOpecode "\<fadd "
70 " Define the default highlighting.
71 " For version 5.7 and earlier: only when not done already
72 " For version 5.8 and later: only when an item doesn't have highlighting yet
73 if version >= 508 || !exists("did_dis_syntax_inits")
75 let did_dis_syntax_inits = 1
76 command -nargs=+ HiLink hi link <args>
78 command -nargs=+ HiLink hi def link <args>
81 " The default methods for highlighting. Can be overridden later
83 HiLink disComment Comment
84 " Constant: String, Character, Number, Boolean, Float
85 HiLink disNumber Number
86 HiLink disString String
87 " Identifier: Function
88 HiLink disHexDump Identifier
89 " Statement: Conditional, Repeat, Label, Operator, Keyword, Exception
90 HiLink disStatement Statement
92 " PreProc: Include, Define, Macro, PreCondit
95 " Type: StorageClass, Structure, Typedef
96 HiLink disRegister StorageClass
97 HiLink disTitle Typedef
98 " Special: SpecialChar, Tag, Delimiter, SpecialComment, Debug
99 HiLink disSpecial SpecialChar
100 HiLink disSection Special
104 HiLink disError Error
111 let b:current_syntax = "dis"
113 let &cpo = s:cpo_save
116 " vim: ts=8 sts=4 sw=2