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
 |