neovim

Neovim text editor
git clone https://git.dasho.dev/neovim.git
Log | Files | Refs | README

z8a.vim (2894B)


      1 " Vim syntax file
      2 " Language:	Z80 assembler asz80
      3 " Maintainer:	Milan Pikula <www@fornax.elf.stuba.sk>
      4 " Last Change:	2003 May 11
      5 
      6 " quit when a syntax file was already loaded
      7 if exists("b:current_syntax")
      8  finish
      9 endif
     10 
     11 syn case ignore
     12 
     13 " Common Z80 Assembly instructions
     14 syn keyword z8aInstruction adc add and bit ccf cp cpd cpdr cpi cpir cpl
     15 syn keyword z8aInstruction daa di djnz ei exx halt im in
     16 syn keyword z8aInstruction ind ini indr inir jp jr ld ldd lddr ldi ldir
     17 syn keyword z8aInstruction neg nop or otdr otir out outd outi
     18 syn keyword z8aInstruction res rl rla rlc rlca rld
     19 syn keyword z8aInstruction rr rra rrc rrca rrd sbc scf set sla sra
     20 syn keyword z8aInstruction srl sub xor
     21 " syn keyword z8aInstruction push pop call ret reti retn inc dec ex rst
     22 
     23 " Any other stuff
     24 syn match z8aIdentifier		"[a-z_][a-z0-9_]*"
     25 
     26 " Instructions changing stack
     27 syn keyword z8aSpecInst push pop call ret reti retn rst
     28 syn match z8aInstruction "\<inc\>"
     29 syn match z8aInstruction "\<dec\>"
     30 syn match z8aInstruction "\<ex\>"
     31 syn match z8aSpecInst "\<inc\s\+sp\>"me=s+3
     32 syn match z8aSpecInst "\<dec\s\+sp\>"me=s+3
     33 syn match z8aSpecInst "\<ex\s\+(\s*sp\s*)\s*,\s*hl\>"me=s+2
     34 
     35 "Labels
     36 syn match z8aLabel		"[a-z_][a-z0-9_]*:"
     37 syn match z8aSpecialLabel	"[a-z_][a-z0-9_]*::"
     38 
     39 " PreProcessor commands
     40 syn match z8aPreProc	"\.org"
     41 syn match z8aPreProc	"\.globl"
     42 syn match z8aPreProc	"\.db"
     43 syn match z8aPreProc	"\.dw"
     44 syn match z8aPreProc	"\.ds"
     45 syn match z8aPreProc	"\.byte"
     46 syn match z8aPreProc	"\.word"
     47 syn match z8aPreProc	"\.blkb"
     48 syn match z8aPreProc	"\.blkw"
     49 syn match z8aPreProc	"\.ascii"
     50 syn match z8aPreProc	"\.asciz"
     51 syn match z8aPreProc	"\.module"
     52 syn match z8aPreProc	"\.title"
     53 syn match z8aPreProc	"\.sbttl"
     54 syn match z8aPreProc	"\.even"
     55 syn match z8aPreProc	"\.odd"
     56 syn match z8aPreProc	"\.area"
     57 syn match z8aPreProc	"\.page"
     58 syn match z8aPreProc	"\.setdp"
     59 syn match z8aPreProc	"\.radix"
     60 syn match z8aInclude	"\.include"
     61 syn match z8aPreCondit	"\.if"
     62 syn match z8aPreCondit	"\.else"
     63 syn match z8aPreCondit	"\.endif"
     64 
     65 " Common strings
     66 syn match z8aString		"\".*\""
     67 syn match z8aString		"\'.*\'"
     68 
     69 " Numbers
     70 syn match z8aNumber		"[0-9]\+"
     71 syn match z8aNumber		"0[xXhH][0-9a-fA-F]\+"
     72 syn match z8aNumber		"0[bB][0-1]*"
     73 syn match z8aNumber		"0[oO\@qQ][0-7]\+"
     74 syn match z8aNumber		"0[dD][0-9]\+"
     75 
     76 " Character constant
     77 syn match z8aString		"\#\'."hs=s+1
     78 
     79 " Comments
     80 syn match z8aComment		";.*"
     81 
     82 syn case match
     83 
     84 " Define the default highlighting.
     85 " Only when an item doesn't have highlighting yet
     86 
     87 hi def link z8aSection		Special
     88 hi def link z8aLabel		Label
     89 hi def link z8aSpecialLabel	Label
     90 hi def link z8aComment		Comment
     91 hi def link z8aInstruction	Statement
     92 hi def link z8aSpecInst		Statement
     93 hi def link z8aInclude		Include
     94 hi def link z8aPreCondit		PreCondit
     95 hi def link z8aPreProc		PreProc
     96 hi def link z8aNumber		Number
     97 hi def link z8aString		String
     98 
     99 
    100 let b:current_syntax = "z8a"
    101 " vim: ts=8