diff options
Diffstat (limited to 'vim73/syntax/asm.vim')
-rw-r--r-- | vim73/syntax/asm.vim | 108 |
1 files changed, 108 insertions, 0 deletions
diff --git a/vim73/syntax/asm.vim b/vim73/syntax/asm.vim new file mode 100644 index 0000000..6b8ce1e --- /dev/null +++ b/vim73/syntax/asm.vim @@ -0,0 +1,108 @@ +" Vim syntax file +" Language: GNU Assembler +" Maintainer: Erik Wognsen <erik.wognsen@gmail.com> +" Previous maintainer: +" Kevin Dahlhausen <kdahlhaus@yahoo.com> +" 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 <args> + else + command -nargs=+ HiLink hi def link <args> + 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 |