" Vim syntax file " Language: GNU Assembler " Maintainer: Erik Wognsen " Previous maintainer: " Kevin Dahlhausen " Last Change: 2010 Apr 18 " Thanks to Ori Avtalion for feedback on the comment markers! " For version 5.x: Clear all syntax items " For version 6.0 and later: Quit when a syntax file was already loaded if version < 600 syntax clear elseif exists("b:current_syntax") finish endif syn case ignore " storage types syn match asmType "\.long" syn match asmType "\.ascii" syn match asmType "\.asciz" syn match asmType "\.byte" syn match asmType "\.double" syn match asmType "\.float" syn match asmType "\.hword" syn match asmType "\.int" syn match asmType "\.octa" syn match asmType "\.quad" syn match asmType "\.short" syn match asmType "\.single" syn match asmType "\.space" syn match asmType "\.string" syn match asmType "\.word" syn match asmLabel "[a-z_][a-z0-9_]*:"he=e-1 syn match asmIdentifier "[a-z_][a-z0-9_]*" " Various #'s as defined by GAS ref manual sec 3.6.2.1 " Technically, the first decNumber def is actually octal, " since the value of 0-7 octal is the same as 0-7 decimal, " I prefer to map it as decimal: syn match decNumber "0\+[1-7]\=[\t\n$,; ]" syn match decNumber "[1-9]\d*" syn match octNumber "0[0-7][0-7]\+" syn match hexNumber "0[xX][0-9a-fA-F]\+" syn match binNumber "0[bB][0-1]*" syn keyword asmTodo contained TODO " GAS supports various comment markers as described here: " http://sourceware.org/binutils/docs-2.19/as/Comments.html " I have commented out the ARM comment marker "@" by default as I think more " people are using "@" with the .type directive. See " http://sourceware.org/binutils/docs-2.19/as/Type.html syn region asmComment start="/\*" end="\*/" contains=asmTodo syn match asmComment "[#;!|].*" contains=asmTodo " syn match asmComment "@.*" contains=asmTodo syn match asmInclude "\.include" syn match asmCond "\.if" syn match asmCond "\.else" syn match asmCond "\.endif" syn match asmMacro "\.macro" syn match asmMacro "\.endm" syn match asmDirective "\.[a-z][a-z]\+" syn case match " Define the default highlighting. " For version 5.7 and earlier: only when not done already " For version 5.8 and later: only when an item doesn't have highlighting yet if version >= 508 || !exists("did_asm_syntax_inits") if version < 508 let did_asm_syntax_inits = 1 command -nargs=+ HiLink hi link else command -nargs=+ HiLink hi def link endif " The default methods for highlighting. Can be overridden later HiLink asmSection Special HiLink asmLabel Label HiLink asmComment Comment HiLink asmTodo Todo HiLink asmDirective Statement HiLink asmInclude Include HiLink asmCond PreCondit HiLink asmMacro Macro HiLink hexNumber Number HiLink decNumber Number HiLink octNumber Number HiLink binNumber Number HiLink asmIdentifier Identifier HiLink asmType Type delcommand HiLink endif let b:current_syntax = "asm" " vim: ts=8