mirror of
https://github.com/neovim/neovim.git
synced 2024-12-23 20:55:18 -07:00
115 lines
3.2 KiB
VimL
115 lines
3.2 KiB
VimL
|
" Vim syntax file
|
||
|
" Language: Z80 assembler asz80
|
||
|
" Maintainer: Milan Pikula <www@fornax.elf.stuba.sk>
|
||
|
" Last Change: 2003 May 11
|
||
|
|
||
|
" For version 5.x: Clear all syntax items
|
||
|
" For version 6.x: Quit when a syntax file was already loaded
|
||
|
if version < 600
|
||
|
syntax clear
|
||
|
elseif exists("b:current_syntax")
|
||
|
finish
|
||
|
endif
|
||
|
|
||
|
syn case ignore
|
||
|
|
||
|
" Common Z80 Assembly instructions
|
||
|
syn keyword z8aInstruction adc add and bit ccf cp cpd cpdr cpi cpir cpl
|
||
|
syn keyword z8aInstruction daa di djnz ei exx halt im in
|
||
|
syn keyword z8aInstruction ind ini indr inir jp jr ld ldd lddr ldi ldir
|
||
|
syn keyword z8aInstruction neg nop or otdr otir out outd outi
|
||
|
syn keyword z8aInstruction res rl rla rlc rlca rld
|
||
|
syn keyword z8aInstruction rr rra rrc rrca rrd sbc scf set sla sra
|
||
|
syn keyword z8aInstruction srl sub xor
|
||
|
" syn keyword z8aInstruction push pop call ret reti retn inc dec ex rst
|
||
|
|
||
|
" Any other stuff
|
||
|
syn match z8aIdentifier "[a-z_][a-z0-9_]*"
|
||
|
|
||
|
" Instructions changing stack
|
||
|
syn keyword z8aSpecInst push pop call ret reti retn rst
|
||
|
syn match z8aInstruction "\<inc\>"
|
||
|
syn match z8aInstruction "\<dec\>"
|
||
|
syn match z8aInstruction "\<ex\>"
|
||
|
syn match z8aSpecInst "\<inc\s\+sp\>"me=s+3
|
||
|
syn match z8aSpecInst "\<dec\s\+sp\>"me=s+3
|
||
|
syn match z8aSpecInst "\<ex\s\+(\s*sp\s*)\s*,\s*hl\>"me=s+2
|
||
|
|
||
|
"Labels
|
||
|
syn match z8aLabel "[a-z_][a-z0-9_]*:"
|
||
|
syn match z8aSpecialLabel "[a-z_][a-z0-9_]*::"
|
||
|
|
||
|
" PreProcessor commands
|
||
|
syn match z8aPreProc "\.org"
|
||
|
syn match z8aPreProc "\.globl"
|
||
|
syn match z8aPreProc "\.db"
|
||
|
syn match z8aPreProc "\.dw"
|
||
|
syn match z8aPreProc "\.ds"
|
||
|
syn match z8aPreProc "\.byte"
|
||
|
syn match z8aPreProc "\.word"
|
||
|
syn match z8aPreProc "\.blkb"
|
||
|
syn match z8aPreProc "\.blkw"
|
||
|
syn match z8aPreProc "\.ascii"
|
||
|
syn match z8aPreProc "\.asciz"
|
||
|
syn match z8aPreProc "\.module"
|
||
|
syn match z8aPreProc "\.title"
|
||
|
syn match z8aPreProc "\.sbttl"
|
||
|
syn match z8aPreProc "\.even"
|
||
|
syn match z8aPreProc "\.odd"
|
||
|
syn match z8aPreProc "\.area"
|
||
|
syn match z8aPreProc "\.page"
|
||
|
syn match z8aPreProc "\.setdp"
|
||
|
syn match z8aPreProc "\.radix"
|
||
|
syn match z8aInclude "\.include"
|
||
|
syn match z8aPreCondit "\.if"
|
||
|
syn match z8aPreCondit "\.else"
|
||
|
syn match z8aPreCondit "\.endif"
|
||
|
|
||
|
" Common strings
|
||
|
syn match z8aString "\".*\""
|
||
|
syn match z8aString "\'.*\'"
|
||
|
|
||
|
" Numbers
|
||
|
syn match z8aNumber "[0-9]\+"
|
||
|
syn match z8aNumber "0[xXhH][0-9a-fA-F]\+"
|
||
|
syn match z8aNumber "0[bB][0-1]*"
|
||
|
syn match z8aNumber "0[oO\@qQ][0-7]\+"
|
||
|
syn match z8aNumber "0[dD][0-9]\+"
|
||
|
|
||
|
" Character constant
|
||
|
syn match z8aString "\#\'."hs=s+1
|
||
|
|
||
|
" Comments
|
||
|
syn match z8aComment ";.*"
|
||
|
|
||
|
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_z8a_syntax_inits")
|
||
|
if version < 508
|
||
|
let did_z8a_syntax_inits = 1
|
||
|
command -nargs=+ HiLink hi link <args>
|
||
|
else
|
||
|
command -nargs=+ HiLink hi def link <args>
|
||
|
endif
|
||
|
|
||
|
HiLink z8aSection Special
|
||
|
HiLink z8aLabel Label
|
||
|
HiLink z8aSpecialLabel Label
|
||
|
HiLink z8aComment Comment
|
||
|
HiLink z8aInstruction Statement
|
||
|
HiLink z8aSpecInst Statement
|
||
|
HiLink z8aInclude Include
|
||
|
HiLink z8aPreCondit PreCondit
|
||
|
HiLink z8aPreProc PreProc
|
||
|
HiLink z8aNumber Number
|
||
|
HiLink z8aString String
|
||
|
|
||
|
delcommand HiLink
|
||
|
endif
|
||
|
|
||
|
let b:current_syntax = "z8a"
|
||
|
" vim: ts=8
|