" Vim syntax file " Language: Assembler, KickAssembler " Maintainer: Roman 'gryf' Dobosz " Last Change: 2012-07-05 " Version: 1.0 " " To install this file place it in ~/.vim/syntax (*nix/Mac) or in " $VIMRUNTIME/syntax on Windows and issue command: " " :set filetype=kickass " " You can also add to your vimrc file autocommand: " " autocmd BufRead *.asm set filetype=kickass " " From now on, all files with extension 'asm' will have brand new kickass " syntax. " " Enjoy. syn clear " 6502 mnemonics syn keyword kickAssMnemonic brk clc cld cli clv dex dey inx iny nop pha php pla syn keyword kickAssMnemonic plp sec sed sei tax tay tsx txa txs tya syn keyword kickAssJump rti rts nextgroup=kickAssLabels syn match kickAssMnemonic "\" syn match kickAssMnemonic "\" syn match kickAssMnemonic "\" syn match kickAssMnemonic "\" syn match kickAssMnemonic "\" syn match kickAssMnemonic "\" syn match kickAssMnemonic "\" syn match kickAssMnemonic "\" syn match kickAssMnemonic "\" syn match kickAssJump "\" nextgroup=kickAssLabels syn match kickAssJump "\" nextgroup=kickAssLabels syn match kickAssJump "\" nextgroup=kickAssLabels syn match kickAssMnemonic "\" syn match kickAssJump "\" nextgroup=kickAssLabels syn match kickAssJump "\" nextgroup=kickAssLabels syn match kickAssJump "\" nextgroup=kickAssLabels syn match kickAssJump "\" nextgroup=kickAssLabels syn match kickAssJump "\" nextgroup=kickAssLabels syn match kickAssMnemonic "\" syn match kickAssMnemonic "\" syn match kickAssMnemonic "\" syn match kickAssMnemonic "\" syn match kickAssMnemonic "\" syn match kickAssMnemonic "\" syn match kickAssMnemonic "\" syn match kickAssMnemonic "\" syn match kickAssJump "\" nextgroup=kickAssLabels syn match kickAssJump "\" nextgroup=kickAssLabels syn match kickAssMnemonic "\" syn match kickAssMnemonic "\" syn match kickAssMnemonic "\" syn match kickAssMnemonic "\" syn match kickAssMnemonic "\" syn match kickAssMnemonic "\" syn match kickAssMnemonic "\" syn match kickAssMnemonic "\" syn match kickAssMnemonic "\" syn match kickAssMnemonic "\" syn match kickAssMnemonic "\" syn match kickAssMnemonic "\" syn match kickAssMnemonic "\" syn match kickAssMnemonic "\" syn match kickAssMnemonic "\" syn match kickAssMnemonic "\" syn match kickAssMnemonic "\" syn match kickAssMnemonic "\" syn match kickAssMnemonic "\" syn match kickAssMnemonic "\" syn match kickAssMnemonic "\" syn match kickAssMnemonic "\" syn match kickAssMnemonic "\" " DTV mnemonics syn match kickAssJump "\" nextgroup=kickAssLabels syn match kickAssMnemonic "\" syn match kickAssMnemonic "\" " indexes syn match kickAssIndex ",\s*[xy]" " Strings/chars syn region kickAssString start=+"+ skip=+\\"+ end=+"+ contains=@Spell oneline syn region kickAssString start=+'+ skip=+\\'+ end=+'+ contains=@Spell oneline " Comments syn keyword kickAssTodo TODO FIXME XXX TBD NOTE WARNING BUG contained syn match kickAssLineComment "\/\/.*" contains=@Spell,kickAssTodo syn region kickAssComment start="/\*" end="\*/" contains=@Spell,kickAssTodo oneline " Numbers syn match kickAssDecNumber "\<\d\+\>" syn match kickAssHexNumber "\$\x\+\>" syn match kickAssBinNumber "%[01]\+\>" syn match kickAssImmediate "#\$\x\+\>" syn match kickAssImmediate "#\d\+\>" syn match kickAssImmediate "<\$\x\+\>" syn match kickAssImmediate "<\d\+\>" syn match kickAssImmediate ">\$\x\+\>" syn match kickAssImmediate ">\d\+\>" syn match kickAssImmediate "#<\$\x\+\>" syn match kickAssImmediate "#<\d\+\>" syn match kickAssImmediate "#>\$\x\+\>" syn match kickAssImmediate "#>\d\+\>" " memory and data directives syn match kickAssDirective /\.\/ syn match kickAssDirective /\.\/ syn match kickAssDirective /\.\/ syn match kickAssDirective /\.\/ syn match kickAssDirective /\.\/ syn match kickAssDirective /\.\/ syn match kickAssDirective /\.\/ syn match kickAssDirective /\.\/ " import directive syn match kickAssDirective "\.\" syn match kickAssDirective "\.\" nextgroup=kickAssImportType skipwhite syn keyword kickAssImportType source binary c64 text contained " console output syn match kickAssDirective "\.\" syn match kickAssDirective "\.\" syn match kickAssDirective "\.\" " elements of script language syn match kickAssDirective "\.\" syn match kickAssDirective "\.\" syn match kickAssDirective "\.\" syn match kickAssDirective "\.\" syn match kickAssDirective "\.\" syn match kickAssDirective "\.\" syn match kickAssDirective "\.\" syn match kickAssDirective "\.\" syn keyword kickAssDirective else syn match kickAssDirective "\.\" syn match kickAssDirective "\.\" nextgroup=kickAssDefName skipwhite syn match kickAssDirective "\.\" nextgroup=kickAssDefName skipwhite syn match kickAssDirective "\.\" syn match kickAssDirective "\.\" nextgroup=kickAssDefName skipwhite syn match kickAssDirective "\.\" nextgroup=kickAssDefName skipwhite " special macros syn match kickAssMacroCall ":\" " string methods and functions syn match kickAssMethod "\" display contained syn match kickAssMethod "\" display contained syn match kickAssMethod "\" display contained syn match kickAssMethod "\" display contained syn match kickAssMethod "\" display contained syn match kickAssMethod "\" display contained syn match kickAssFunction "\("he=e-1 syn match kickAssFunction "\("he=e-1 syn match kickAssFunction "\("he=e-1 syn match kickAssFunction "\("he=e-1 " Math library syn keyword kickAssConstant PI E syn match kickAssFunction "\("he=e-1 syn match kickAssFunction "\("he=e-1 syn match kickAssFunction "\("he=e-1 syn match kickAssFunction "\("he=e-1 syn match kickAssFunction "\("he=e-1 syn match kickAssFunction "\("he=e-1 syn match kickAssFunction "\("he=e-1 syn match kickAssFunction "\("he=e-1 syn match kickAssFunction "\("he=e-1 syn match kickAssFunction "\("he=e-1 syn match kickAssFunction "\("he=e-1 syn match kickAssFunction "\("he=e-1 syn match kickAssFunction "\("he=e-1 syn match kickAssFunction "\("he=e-1 syn match kickAssFunction "\("he=e-1 syn match kickAssFunction "\("he=e-1 syn match kickAssFunction "\("he=e-1 syn match kickAssFunction "\("he=e-1 syn match kickAssFunction "\("he=e-1 syn match kickAssFunction "\("he=e-1 syn match kickAssFunction "\("he=e-1 syn match kickAssFunction "\("he=e-1 syn match kickAssFunction "\("he=e-1 syn match kickAssFunction "\("he=e-1 syn match kickAssFunction "\("he=e-1 syn match kickAssFunction "\("he=e-1 syn match kickAssFunction "\("he=e-1 syn match kickAssFunction "\("he=e-1 syn match kickAssFunction "\("he=e-1 syn match kickAssFunction "\("he=e-1 syn match kickAssFunction "\("he=e-1 " List already defined: size syn match kickAssFunction /\(/he=e-1 syn match kickAssMethod "\" display contained syn match kickAssMethod "\" display contained syn match kickAssMethod "\" display contained syn match kickAssMethod "\" display contained syn match kickAssMethod "\" display contained syn match kickAssMethod "\" display contained syn match kickAssMethod "\" display contained " READY. " Hash - already defined names: get, remove syn match kickAssFunction /\(/he=e-1 syn match kickAssMethod "\" display contained syn match kickAssMethod "\" display contained syn match kickAssMethod "\" display contained " Vector/Matrix - already defined: get, set syn match kickAssFunction "\("he=e-1 syn match kickAssFunction "\" display contained syn match kickAssFunction "\" display contained syn match kickAssFunction "\" display contained syn match kickAssFunction "\<\X\>" display contained syn match kickAssFunction "\" display contained syn match kickAssFunction "\" display contained syn match kickAssFunction "\" display contained syn match kickAssFunction "\" display contained syn match kickAssFunction "\" display contained " Structures - already defined names: get, set syn match kickAssDirective "\.\" nextgroup=kickAssDefName skipwhite syn match kickAssMethod "\" display contained syn match kickAssMethod "\" display contained syn match kickAssMethod "\" display contained " pseudocommand syn match kickAssDirective "\.\" nextgroup=kickAssDefName skipwhite syn match kickAssFunction "\("he=e-1 syn match kickAssFunction "\("he=e-1 syn match kickAssFunction "\("he=e-1 syn keyword kickAssConstant AT_ABSOLUTE AT_ABSOLUTEX AT_ABSOLUTEY AT_IMMEDIATE syn keyword kickAssConstant AT_INDIRECT AT_IZEROPAGEX AT_IZEROPAGEY AT_NONE " Opcode constants syn match kickAssFunction "\("he=e-1 syn keyword kickAssConstant RTS syn match kickAssConstant "\<[A-Z]\{3}2\?_\(IMM\|I\?ZP[XY]\?\|ABS[XY]\?\|IND\|REL\)\>" " READY. " Colour constants syn keyword kickAssColor BLACK WHITE RED CYAN PURPLE GREEN BLUE YELLOW ORANGE syn keyword kickAssColor BROWN LIGHT_RED DARK_GRAY GRAY LIGHT_GREEN LIGHT_BLUE syn keyword kickAssColor LIGHT_GRAY DARK_GREY GREY LIGHT_GREY syn keyword kickAssConstant C64FILE syn keyword kickAssConstant BD_C64FILE BF_BITMAP_SINGLECOLOR BF_KOALA BF_FLI " Binary import syn match kickAssFunction "\("he=e-1 syn match kickAssMethod "\" display contained syn match kickAssFunction "\("he=e-1 " PSID files syn match kickAssFunction "\("he=e-1 syn match kickAssAttr "\" syn match kickAssAttr "\" syn match kickAssAttr "\" syn match kickAssAttr "\" syn match kickAssAttr "\" syn match kickAssAttr "\" syn match kickAssAttr "\" syn match kickAssAttr "\" syn match kickAssAttr "\" syn match kickAssAttr "\" syn match kickAssAttr "\" syn match kickAssAttr "\" syn match kickAssAttr "\" syn match kickAssAttr "\" syn match kickAssAttr "\" syn match kickAssMethod "\" display contained " Graphics files syn match kickAssFunction "\("he=e-1 syn match kickAssAttr "\" syn match kickAssAttr "\" syn match kickAssMethod "\" display contained syn match kickAssMethod "\" display contained syn match kickAssMethod "\" display contained " User defined files syn match kickAssFunction "\("he=e-1 syn match kickAssMethod "\" display contained " Testing syn match kickAssDirective "\.\" syn match kickAssDirective "\.\" syn region kickAssMethodCall start="[A-Za-z0-9_)]\." end="(" \ contains=kickAssMethod oneline syn match kickAssDefName "[a-zA-Z_][a-zA-Z0-9_]*" display contained "Labels and macro names. All case insensitive syn case ignore syn match kickAssMacroCall ":[a-z_][a-z0-9_]*" syn match kickAssLabels "^\!\?\<[a-z0-9_]*\>:" syn match kickAssLabels "\s\!\<[a-z0-9_]*\>[-+]\?"hs=s+1 contained syn match kickAssLabels "\s\<[a-z0-9_]*\>[-+]\?"hs=s+1 contained syn case match if !exists("did_kickasm_syntax_inits") let did_kickasm_syntax_inits = 1 hi def link kickAssDirective Special hi def link kickAssMnemonic Type hi def link kickAssIndex None hi def link kickAssJump PreCondit hi def link kickAssString String hi def link kickAssString String hi def link kickAssComment Comment hi def link kickAssLineComment Comment hi def link kickAssMacroCall Function hi def link kickAssTodo Todo hi def link kickAssImportType Operator hi def link kickAssDefName Function hi def link kickAssFunction Function hi def link kickAssMethod Function hi def link kickAssAttr Special hi def link kickAssColor Constant hi def link kickAssConstant Constant hi def link kickAssImmediate None hi def link kickAssHexNumber None hi def link kickAssBinNumber None hi def link kickAssDecNumber None hi def link kickAssLabels Label endif let b:current_syntax = "kickasm"