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