4 Commits

Author SHA1 Message Date
gryf 2563e4eae7 Updated to KickAssembler 4.19 changes 2019-08-04 19:41:55 +02:00
gryf cb4627801a Bump to KickAssembler 3.42 2019-08-04 18:20:59 +02:00
gryf 55efc1d2c4 Updated to KickAssembler 3.36 changes 2014-08-12 21:38:03 +02:00
gryf 9d32c3b942 Updated to KickAssembler 3.25 changes 2014-08-12 20:59:08 +02:00
2 changed files with 111 additions and 67 deletions
+2 -2
View File
@@ -22,7 +22,7 @@ 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
From now on, all files with extension *asm* will have brand new kickass
syntax.
Enjoy.
@@ -32,4 +32,4 @@ Enjoy.
.. _Vundle: https://github.com/gmarik/Vundle.vim
.. _NeoBundle: https://github.com/Shougo/neobundle.vim
.. _BitBucket: https://bitbucket.org/gryf/kickass-syntax-vim
.. _GitHub: https://bitbucket.org/gryf/kickass-syntax-vim
.. _GitHub: https://github.com/gryf/kickass-syntax-vim
+107 -63
View File
@@ -1,10 +1,20 @@
" Vim syntax file
" Language: Assembler, KickAssembler
" Maintainer: Roman 'gryf' Dobosz <gryf_esm@o2.pl>
" Last Change: 2012-07-09
" Version: 1.1
" Last Change: 2019-08-04
" Version: 1.5
"
" Changelog:
" 1.5 Updated to KickAssembler 4.19. Added *, .zp, .encoding, .errorif and
" .while directives. Added new import and preprocessor commands.
"
" 1.4 Updated to KickAssembler 3.42 changes. Added abbreviations for .byte,
" .word and .dword. Added getPath and getFilename kickass functions.
"
" 1.3 Updated to KickAssembler 3.36 changes (added addAll and uget* methods)
"
" 1.2 Updated to KickAssembler 3.25 changes
"
" 1.1 Since in assembly languages 'everything is a label' there pretty hard
" to distinguish labels from variables and structures, so I decided to
" remove highlighting labels at all. Instead numbers are highlighted, so that
@@ -34,68 +44,66 @@ syn match kickAssMacroCall ":[a-z_][a-z0-9_]*"
syn case match
" 6502 mnemonics
syn keyword kickAssMnemonic brk clc cld cli clv dex dey nextgroup=kickAssLabels
syn keyword kickAssMnemonic inx iny nop pha php pla plp nextgroup=kickAssLabels
syn keyword kickAssMnemonic sec sed sei tax tay tsx txa nextgroup=kickAssLabels
syn keyword kickAssMnemonic txs tya nextgroup=kickAssLabels
syn keyword kickAssJump rti rts nextgroup=kickAssLabels
syn keyword kickAssMnemonic brk clc cld cli clv dex dey inx iny nop pha php
syn keyword kickAssMnemonic pla plp sec sed sei tax tay tsx txa txs tya
syn keyword kickAssJump rti rts
syn match kickAssMnemonic "\<adc\(\.\(imm\?\|zp\?x\?\|izp\?[xy]\|a\(bs\)\?[xy]\?\)\)\?\>" nextgroup=kickAssLabels
syn match kickAssMnemonic "\<ahx\(\.\(izp\?y\|a\(bs\)\?y\)\)\?\>" nextgroup=kickAssLabels
syn match kickAssMnemonic "\<alr\(\.imm\?\)\?\>" nextgroup=kickAssLabels
syn match kickAssMnemonic "\<anc\(\.imm\?\)\?\>" nextgroup=kickAssLabels
syn match kickAssMnemonic "\<anc2\(\.imm\?\)\?\>" nextgroup=kickAssLabels
syn match kickAssMnemonic "\<and\(\.\(imm\?\|zp\?x\?\|izp\?[xy]\|a\(bs\)\?[xy]\?\)\)\?\>" nextgroup=kickAssLabels
syn match kickAssMnemonic "\<arr\(\.imm\?\)\?\>" nextgroup=kickAssLabels
syn match kickAssMnemonic "\<asl\(\.\(zp\?x\?\|a\(bs\)\?x\?\)\)\?\>" nextgroup=kickAssLabels
syn match kickAssMnemonic "\<axs\(\.imm\?\)\?\>" nextgroup=kickAssLabels
syn match kickAssJump "\<bcc\(\.r\(el\)\?\)\?\>" nextgroup=kickAssLabels
syn match kickAssJump "\<bcs\(\.r\(el\)\?\)\?\>" nextgroup=kickAssLabels
syn match kickAssJump "\<beq\(\.r\(el\)\?\)\?\>" nextgroup=kickAssLabels
syn match kickAssMnemonic "\<bit\(\.\(zp\?x\?\|a\(bs\)\?x\?\)\)\?\>" nextgroup=kickAssLabels
syn match kickAssJump "\<bmi\(\.r\(el\)\?\)\?\>" nextgroup=kickAssLabels
syn match kickAssJump "\<bne\(\.r\(el\)\?\)\?\>" nextgroup=kickAssLabels
syn match kickAssJump "\<bpl\(\.r\(el\)\?\)\?\>" nextgroup=kickAssLabels
syn match kickAssJump "\<bvc\(\.r\(el\)\?\)\?\>" nextgroup=kickAssLabels
syn match kickAssJump "\<bvs\(\.r\(el\)\?\)\?\>" nextgroup=kickAssLabels
syn match kickAssMnemonic "\<cmp\(\.\(imm\?\|zp\?x\?\|izp\?[xy]\|a\(bs\)\?[xy]\?\)\)\?\>" nextgroup=kickAssLabels
syn match kickAssMnemonic "\<cpx\(\.\(imm\?\|zp\?\|a\(bs\)\?\)\)\?\>" nextgroup=kickAssLabels
syn match kickAssMnemonic "\<cpy\(\.\(imm\?\|zp\?\|a\(bs\)\?\)\)\?\>" nextgroup=kickAssLabels
syn match kickAssMnemonic "\<dcp\(\.\(zp\?\x\?\|izp\?[xy]\|a\(bs\)\?[xy]\?\)\)\?\>" nextgroup=kickAssLabels
syn match kickAssMnemonic "\<dec\(\.\(zp\?x\?\|a\(bs\)\?x\?\)\)\?\>" nextgroup=kickAssLabels
syn match kickAssMnemonic "\<eor\(\.\(imm\?\|zp\?x\?\|izp\?[xy]\|a\(bs\)\?[xy]\?\)\)\?\>" nextgroup=kickAssLabels
syn match kickAssMnemonic "\<inc\(\.\(zp\?x\?\|a\(bs\)\?x\?\)\)\?\>" nextgroup=kickAssLabels
syn match kickAssMnemonic "\<isc\(\.\(zp\?\x\?\|izp\?[xy]\|a\(bs\)\?[xy]\?\)\)\?\>" nextgroup=kickAssLabels
syn match kickAssJump "\<jmp\(\.\(a\(bs\)\?\|i\(nd\)\?\)\)\?\>" nextgroup=kickAssLabels
syn match kickAssJump "\<jsr\(\.a\(bs\)\?\)\?\>" nextgroup=kickAssLabels
syn match kickAssMnemonic "\<las\(\.a\(bs\)\?y\)\?\>" nextgroup=kickAssLabels
syn match kickAssMnemonic "\<lax\(\.\(imm\?\|zp\?y\?\|izp\?[xy]\|a\(bs\)\?y\?\)\)\?\>" nextgroup=kickAssLabels
syn match kickAssMnemonic "\<lda\(\.\(imm\?\|zp\?x\?\|izp\?[xy]\|a\(bs\)\?[xy]\?\)\)\?\>" nextgroup=kickAssLabels
syn match kickAssMnemonic "\<ldx\(\.\(imm\?\|zp\?y\?\|a\(bs\)\?y\?\)\)\?\>" nextgroup=kickAssLabels
syn match kickAssMnemonic "\<ldy\(\.\(imm\?\|zp\?x\?\|a\(bs\)\?x\?\)\)\?\>" nextgroup=kickAssLabels
syn match kickAssMnemonic "\<lsr\(\.\(zp\?x\?\|a\(bs\)\?x\?\)\)\?\>" nextgroup=kickAssLabels
syn match kickAssMnemonic "\<ora\(\.\(imm\?\|zp\?x\?\|izp\?[xy]\|a\(bs\)\?[xy]\?\)\)\?\>" nextgroup=kickAssLabels
syn match kickAssMnemonic "\<rla\(\.\(zp\?\x\?\|izp\?[xy]\|a\(bs\)\?[xy]\?\)\)\?\>" nextgroup=kickAssLabels
syn match kickAssMnemonic "\<rol\(\.\(zp\?x\?\|a\(bs\)\?x\?\)\)\?\>" nextgroup=kickAssLabels
syn match kickAssMnemonic "\<ror\(\.\(zp\?x\?\|a\(bs\)\?x\?\)\)\?\>" nextgroup=kickAssLabels
syn match kickAssMnemonic "\<rra\(\.\(zp\?\x\?\|izp\?[xy]\|a\(bs\)\?[xy]\?\)\)\?\>" nextgroup=kickAssLabels
syn match kickAssMnemonic "\<sax\(\.\(zp\?[xy]\?\|a\(bs\)\?\)\)\?\>" nextgroup=kickAssLabels
syn match kickAssMnemonic "\<sbc\(\.\(imm\?\|zp\?x\?\|izp\?[xy]\|a\(bs\)\?[xy]\?\)\)\?\>" nextgroup=kickAssLabels
syn match kickAssMnemonic "\<sbc2\(\.imm\?\)\?\>" nextgroup=kickAssLabels
syn match kickAssMnemonic "\<shx\(\.a\(bs\)\?y\)\?\>" nextgroup=kickAssLabels
syn match kickAssMnemonic "\<shy\(\.a\(bs\)\?x\)\?\>" nextgroup=kickAssLabels
syn match kickAssMnemonic "\<slo\(\.\(zp\?\x\?\|izp\?[xy]\|a\(bs\)\?[xy]\?\)\)\?\>" nextgroup=kickAssLabels
syn match kickAssMnemonic "\<sre\(\.\(zp\?\x\?\|izp\?[xy]\|a\(bs\)\?[xy]\?\)\)\?\>" nextgroup=kickAssLabels
syn match kickAssMnemonic "\<sta\(\.\(zp\?\x\?\|izp\?[xy]\|a\(bs\)\?[xy]\?\)\)\?\>" nextgroup=kickAssLabels
syn match kickAssMnemonic "\<stx\(\.\(zp\?y\?\|a\(bs\)\?\)\)\?\>" nextgroup=kickAssLabels
syn match kickAssMnemonic "\<sty\(\.\(zp\?x\?\|a\(bs\)\?\)\)\?\>" nextgroup=kickAssLabels
syn match kickAssMnemonic "\<tas\(\.a\(bs\)\?y\)\?\>" nextgroup=kickAssLabels
syn match kickAssMnemonic "\<xaa\(\.imm\?\)\?\>" nextgroup=kickAssLabels
syn match kickAssMnemonic "\<adc\(\.\(imm\?\|zp\?x\?\|izp\?[xy]\|a\(bs\)\?[xy]\?\)\)\?\>"
syn match kickAssMnemonic "\<ahx\(\.\(izp\?y\|a\(bs\)\?y\)\)\?\>"
syn match kickAssMnemonic "\<alr\(\.imm\?\)\?\>"
syn match kickAssMnemonic "\<anc\(\.imm\?\)\?\>"
syn match kickAssMnemonic "\<anc2\(\.imm\?\)\?\>"
syn match kickAssMnemonic "\<and\(\.\(imm\?\|zp\?x\?\|izp\?[xy]\|a\(bs\)\?[xy]\?\)\)\?\>"
syn match kickAssMnemonic "\<arr\(\.imm\?\)\?\>"
syn match kickAssMnemonic "\<asl\(\.\(zp\?x\?\|a\(bs\)\?x\?\)\)\?\>"
syn match kickAssMnemonic "\<axs\(\.imm\?\)\?\>"
syn match kickAssJump "\<bcc\(\.r\(el\)\?\)\?\>"
syn match kickAssJump "\<bcs\(\.r\(el\)\?\)\?\>"
syn match kickAssJump "\<beq\(\.r\(el\)\?\)\?\>"
syn match kickAssMnemonic "\<bit\(\.\(zp\?\|a\(bs\)\?\)\)\?\>"
syn match kickAssJump "\<bmi\(\.r\(el\)\?\)\?\>"
syn match kickAssJump "\<bne\(\.r\(el\)\?\)\?\>"
syn match kickAssJump "\<bpl\(\.r\(el\)\?\)\?\>"
syn match kickAssJump "\<bvc\(\.r\(el\)\?\)\?\>"
syn match kickAssJump "\<bvs\(\.r\(el\)\?\)\?\>"
syn match kickAssMnemonic "\<cmp\(\.\(imm\?\|zp\?x\?\|izp\?[xy]\|a\(bs\)\?[xy]\?\)\)\?\>"
syn match kickAssMnemonic "\<cpx\(\.\(imm\?\|zp\?\|a\(bs\)\?\)\)\?\>"
syn match kickAssMnemonic "\<cpy\(\.\(imm\?\|zp\?\|a\(bs\)\?\)\)\?\>"
syn match kickAssMnemonic "\<dcp\(\.\(zp\?\x\?\|izp\?[xy]\|a\(bs\)\?[xy]\?\)\)\?\>"
syn match kickAssMnemonic "\<dec\(\.\(zp\?x\?\|a\(bs\)\?x\?\)\)\?\>"
syn match kickAssMnemonic "\<eor\(\.\(imm\?\|zp\?x\?\|izp\?[xy]\|a\(bs\)\?[xy]\?\)\)\?\>"
syn match kickAssMnemonic "\<inc\(\.\(zp\?x\?\|a\(bs\)\?x\?\)\)\?\>"
syn match kickAssMnemonic "\<isc\(\.\(zp\?\x\?\|izp\?[xy]\|a\(bs\)\?[xy]\?\)\)\?\>"
syn match kickAssJump "\<jmp\(\.\(a\(bs\)\?\|i\(nd\)\?\)\)\?\>"
syn match kickAssJump "\<jsr\(\.a\(bs\)\?\)\?\>"
syn match kickAssMnemonic "\<las\(\.a\(bs\)\?y\)\?\>"
syn match kickAssMnemonic "\<lax\(\.\(imm\?\|zp\?y\?\|izp\?[xy]\|a\(bs\)\?y\?\)\)\?\>"
syn match kickAssMnemonic "\<lda\(\.\(imm\?\|zp\?x\?\|izp\?[xy]\|a\(bs\)\?[xy]\?\)\)\?\>"
syn match kickAssMnemonic "\<ldx\(\.\(imm\?\|zp\?y\?\|a\(bs\)\?y\?\)\)\?\>"
syn match kickAssMnemonic "\<ldy\(\.\(imm\?\|zp\?x\?\|a\(bs\)\?x\?\)\)\?\>"
syn match kickAssMnemonic "\<lsr\(\.\(zp\?x\?\|a\(bs\)\?x\?\)\)\?\>"
syn match kickAssMnemonic "\<ora\(\.\(imm\?\|zp\?x\?\|izp\?[xy]\|a\(bs\)\?[xy]\?\)\)\?\>"
syn match kickAssMnemonic "\<rla\(\.\(zp\?\x\?\|izp\?[xy]\|a\(bs\)\?[xy]\?\)\)\?\>"
syn match kickAssMnemonic "\<rol\(\.\(zp\?x\?\|a\(bs\)\?x\?\)\)\?\>"
syn match kickAssMnemonic "\<ror\(\.\(zp\?x\?\|a\(bs\)\?x\?\)\)\?\>"
syn match kickAssMnemonic "\<rra\(\.\(zp\?\x\?\|izp\?[xy]\|a\(bs\)\?[xy]\?\)\)\?\>"
syn match kickAssMnemonic "\<sax\(\.\(zp\?[xy]\?\|a\(bs\)\?\)\)\?\>"
syn match kickAssMnemonic "\<sbc\(\.\(imm\?\|zp\?x\?\|izp\?[xy]\|a\(bs\)\?[xy]\?\)\)\?\>"
syn match kickAssMnemonic "\<sbc2\(\.imm\?\)\?\>"
syn match kickAssMnemonic "\<shx\(\.a\(bs\)\?y\)\?\>"
syn match kickAssMnemonic "\<shy\(\.a\(bs\)\?x\)\?\>"
syn match kickAssMnemonic "\<slo\(\.\(zp\?\x\?\|izp\?[xy]\|a\(bs\)\?[xy]\?\)\)\?\>"
syn match kickAssMnemonic "\<sre\(\.\(zp\?\x\?\|izp\?[xy]\|a\(bs\)\?[xy]\?\)\)\?\>"
syn match kickAssMnemonic "\<sta\(\.\(zp\?\x\?\|izp\?[xy]\|a\(bs\)\?[xy]\?\)\)\?\>"
syn match kickAssMnemonic "\<stx\(\.\(zp\?y\?\|a\(bs\)\?\)\)\?\>"
syn match kickAssMnemonic "\<sty\(\.\(zp\?x\?\|a\(bs\)\?\)\)\?\>"
syn match kickAssMnemonic "\<tas\(\.a\(bs\)\?y\)\?\>"
syn match kickAssMnemonic "\<xaa\(\.imm\?\)\?\>"
" DTV mnemonics
syn match kickAssJump "\<bra\(\.r\(el\)\?\)\?\>" nextgroup=kickAssLabels
syn match kickAssMnemonic "\<sac\(\.imm\?\)\?\>" nextgroup=kickAssLabels
syn match kickAssMnemonic "\<sir\(\.imm\?\)\?\>" nextgroup=kickAssLabels
syn match kickAssJump "\<bra\(\.r\(el\)\?\)\?\>"
syn match kickAssMnemonic "\<sac\(\.imm\?\)\?\>"
syn match kickAssMnemonic "\<sir\(\.imm\?\)\?\>"
" indexes
syn match kickAssIndex ",\s*[xy]"
@@ -124,17 +132,38 @@ syn match kickAssImmediate "#>\d\+\>"
syn match kickAssDirective /\.\<pc\>/
syn match kickAssDirective /\.\<align\>/
syn match kickAssDirective /\.\<byte\>/
syn match kickAssDirective /\.\<by\>/
syn match kickAssDirective /\.\<word\>/
syn match kickAssDirective /\.\<wo\>/
syn match kickAssDirective /\.\<dword\>/
syn match kickAssDirective /\.\<dw\>/
syn match kickAssDirective /\.\<text\>/
syn match kickAssDirective /\.\<fill\>/
syn match kickAssDirective /\.\<pseudopc\>/
syn match kickAssDirective /\.\<zp\>/
syn match kickAssDirective /^\*[^\*]/he=e-1
syn match kickAssDirective /\.\<encoding\>/
" modifiers
syn match kickAssDirective /\.\<modify\>/
syn match kickAssDirective /\.\<filemodify\>/
" import directive
syn match kickAssDirective "\.\<importonce\>"
syn match kickAssDirective "\.\<import\>" nextgroup=kickAssImportType skipwhite
syn keyword kickAssImportType source binary c64 text contained
" preprocessor/imports
syn match kickAssInclude /#importonce\>/
syn match kickAssInclude /#importif\>/
syn match kickAssInclude /#import\>/
syn match kickAssPreProc /#define\>/
syn match kickAssPreProc /#undef\>/
syn match kickAssPreProc /#if\>/
syn match kickAssPreProc /#elif\>/
syn match kickAssPreProc /#else\>/
syn match kickAssPreProc /#endif\>/
" console output
syn match kickAssDirective "\.\<print\>"
syn match kickAssDirective "\.\<printnow\>"
@@ -150,12 +179,16 @@ syn match kickAssDirective "\.\<lock\>"
syn match kickAssDirective "\.\<define\>"
syn match kickAssDirective "\.\<if\>"
syn keyword kickAssDirective else
syn match kickAssDirective "\.\<for\>"
syn keyword kickAssDirective if
syn keyword kickAssDirective var
syn match kickAssDirective "\.\<for\>("he=e-1,hs=s+1
syn match kickAssDirective "\.\<macro\>"
syn match kickAssDirective "\.\<function\>"
syn match kickAssDirective "\.\<return\>"
syn match kickAssDirective "\.\<namespace\>"
syn match kickAssDirective "\.\<filenamespace\>"
syn match kickAssDirective "\.\<errorif\>"
syn match kickAssDirective "\.\<while\>("he=e-1,hs=s+1
" special macros
syn match kickAssMacroCall ":\<BasicUpstart2\?\>"
@@ -186,6 +219,8 @@ syn match kickAssMethod "\.\<charAt\>("he=e-1,hs=s+1
syn match kickAssMethod "\.\<substring\>("he=e-1,hs=s+1
syn match kickAssMethod "\.\<asBoolean\>("he=e-1,hs=s+1
syn match kickAssMethod "\.\<asNumber\>("he=e-1,hs=s+1
syn match kickAssMethod "\.\<toLowerCase\>("he=e-1,hs=s+1
syn match kickAssMethod "\.\<toUpperCase\>("he=e-1,hs=s+1
syn match kickAssFunction "\<toIntString\>("he=e-1
syn match kickAssFunction "\<toBinaryString\>("he=e-1
@@ -236,6 +271,7 @@ syn match kickAssMethod "\.\<remove\>("he=e-1,hs=s+1
syn match kickAssMethod "\.\<shuffle\>("he=e-1,hs=s+1
syn match kickAssMethod "\.\<reverse\>("he=e-1,hs=s+1
syn match kickAssMethod "\.\<sort\>("he=e-1,hs=s+1
syn match kickAssMethod "\.\<addAll\>("he=e-1,hs=s+1
" READY.
" Hash - already defined names: get, remove
@@ -288,6 +324,8 @@ syn keyword kickAssConstant BD_C64FILE BF_BITMAP_SINGLECOLOR BF_KOALA BF_FLI
syn match kickAssFunction "\<LoadBinary\>("he=e-1
syn match kickAssMethod "\.\<getSize\>("he=e-1,hs=s+1
syn match kickAssFunction "\<LoadBinary\>("he=e-1
syn match kickAssMethod "\.\<uget[a-zA-Z0-9]*\>("he=e-1,hs=s+1
" Graphics files
syn match kickAssFunction "\<LoadPicture\>("he=e-1
@@ -312,6 +350,10 @@ syn match kickAssMethod "\.\<writeln\>("he=e-1,hs=s+1
syn match kickAssDirective "\.\<kickAssert\>"
syn match kickAssDirective "\.\<kickAsserterror\>"
" Misc
syn match kickAssMethod "\<getPath\>("he=e-1,hs=s+1
syn match kickAssMethod "\<getFilename\>("he=e-1,hs=s+1
if !exists("did_kickasm_syntax_inits")
let did_kickasm_syntax_inits = 1
@@ -328,6 +370,8 @@ if !exists("did_kickasm_syntax_inits")
hi def link kickAssTodo Todo
hi def link kickAssImportType Operator
hi def link kickAssInclude Include
hi def link kickAssPreProc PreProc
hi def link kickAssFunction Function
hi def link kickAssMethod Function
@@ -341,4 +385,4 @@ if !exists("did_kickasm_syntax_inits")
hi def link kickAssDecNumber Number
endif
let b:current_syntax = "kickasm"
let b:current_syntax = "kickass"