forked from aniani/vim
		
	
		
			
				
	
	
		
			167 lines
		
	
	
		
			6.6 KiB
		
	
	
	
		
			VimL
		
	
	
	
	
	
			
		
		
	
	
			167 lines
		
	
	
		
			6.6 KiB
		
	
	
	
		
			VimL
		
	
	
	
	
	
| " Vim syntax file
 | |
| " Language:	xa 6502 cross assembler
 | |
| " Maintainer:	Clemens Kirchgatterer <clemens@thf.ath.cx>
 | |
| " Last Change:	2003 May 03
 | |
| 
 | |
| " 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
 | |
| 
 | |
| " Opcodes
 | |
| syn match a65Opcode	"\<PHP\($\|\s\)" nextgroup=a65Address
 | |
| syn match a65Opcode	"\<PLA\($\|\s\)" nextgroup=a65Address
 | |
| syn match a65Opcode	"\<PLX\($\|\s\)" nextgroup=a65Address
 | |
| syn match a65Opcode	"\<PLY\($\|\s\)" nextgroup=a65Address
 | |
| syn match a65Opcode	"\<SEC\($\|\s\)" nextgroup=a65Address
 | |
| syn match a65Opcode	"\<CLD\($\|\s\)" nextgroup=a65Address
 | |
| syn match a65Opcode	"\<SED\($\|\s\)" nextgroup=a65Address
 | |
| syn match a65Opcode	"\<CLI\($\|\s\)" nextgroup=a65Address
 | |
| syn match a65Opcode	"\<BVC\($\|\s\)" nextgroup=a65Address
 | |
| syn match a65Opcode	"\<BVS\($\|\s\)" nextgroup=a65Address
 | |
| syn match a65Opcode	"\<BCS\($\|\s\)" nextgroup=a65Address
 | |
| syn match a65Opcode	"\<BCC\($\|\s\)" nextgroup=a65Address
 | |
| syn match a65Opcode	"\<DEY\($\|\s\)" nextgroup=a65Address
 | |
| syn match a65Opcode	"\<DEC\($\|\s\)" nextgroup=a65Address
 | |
| syn match a65Opcode	"\<CMP\($\|\s\)" nextgroup=a65Address
 | |
| syn match a65Opcode	"\<CPX\($\|\s\)" nextgroup=a65Address
 | |
| syn match a65Opcode	"\<BIT\($\|\s\)" nextgroup=a65Address
 | |
| syn match a65Opcode	"\<ROL\($\|\s\)" nextgroup=a65Address
 | |
| syn match a65Opcode	"\<ROR\($\|\s\)" nextgroup=a65Address
 | |
| syn match a65Opcode	"\<ASL\($\|\s\)" nextgroup=a65Address
 | |
| syn match a65Opcode	"\<TXA\($\|\s\)" nextgroup=a65Address
 | |
| syn match a65Opcode	"\<TYA\($\|\s\)" nextgroup=a65Address
 | |
| syn match a65Opcode	"\<TSX\($\|\s\)" nextgroup=a65Address
 | |
| syn match a65Opcode	"\<TXS\($\|\s\)" nextgroup=a65Address
 | |
| syn match a65Opcode	"\<LDA\($\|\s\)" nextgroup=a65Address
 | |
| syn match a65Opcode	"\<LDX\($\|\s\)" nextgroup=a65Address
 | |
| syn match a65Opcode	"\<LDY\($\|\s\)" nextgroup=a65Address
 | |
| syn match a65Opcode	"\<STA\($\|\s\)" nextgroup=a65Address
 | |
| syn match a65Opcode	"\<PLP\($\|\s\)" nextgroup=a65Address
 | |
| syn match a65Opcode	"\<BRK\($\|\s\)" nextgroup=a65Address
 | |
| syn match a65Opcode	"\<RTI\($\|\s\)" nextgroup=a65Address
 | |
| syn match a65Opcode	"\<NOP\($\|\s\)" nextgroup=a65Address
 | |
| syn match a65Opcode	"\<SEI\($\|\s\)" nextgroup=a65Address
 | |
| syn match a65Opcode	"\<CLV\($\|\s\)" nextgroup=a65Address
 | |
| syn match a65Opcode	"\<PHA\($\|\s\)" nextgroup=a65Address
 | |
| syn match a65Opcode	"\<PHX\($\|\s\)" nextgroup=a65Address
 | |
| syn match a65Opcode	"\<BRA\($\|\s\)" nextgroup=a65Address
 | |
| syn match a65Opcode	"\<JMP\($\|\s\)" nextgroup=a65Address
 | |
| syn match a65Opcode	"\<JSR\($\|\s\)" nextgroup=a65Address
 | |
| syn match a65Opcode	"\<RTS\($\|\s\)" nextgroup=a65Address
 | |
| syn match a65Opcode	"\<CPY\($\|\s\)" nextgroup=a65Address
 | |
| syn match a65Opcode	"\<BNE\($\|\s\)" nextgroup=a65Address
 | |
| syn match a65Opcode	"\<BEQ\($\|\s\)" nextgroup=a65Address
 | |
| syn match a65Opcode	"\<BMI\($\|\s\)" nextgroup=a65Address
 | |
| syn match a65Opcode	"\<LSR\($\|\s\)" nextgroup=a65Address
 | |
| syn match a65Opcode	"\<INX\($\|\s\)" nextgroup=a65Address
 | |
| syn match a65Opcode	"\<INY\($\|\s\)" nextgroup=a65Address
 | |
| syn match a65Opcode	"\<INC\($\|\s\)" nextgroup=a65Address
 | |
| syn match a65Opcode	"\<ADC\($\|\s\)" nextgroup=a65Address
 | |
| syn match a65Opcode	"\<SBC\($\|\s\)" nextgroup=a65Address
 | |
| syn match a65Opcode	"\<AND\($\|\s\)" nextgroup=a65Address
 | |
| syn match a65Opcode	"\<ORA\($\|\s\)" nextgroup=a65Address
 | |
| syn match a65Opcode	"\<STX\($\|\s\)" nextgroup=a65Address
 | |
| syn match a65Opcode	"\<STY\($\|\s\)" nextgroup=a65Address
 | |
| syn match a65Opcode	"\<STZ\($\|\s\)" nextgroup=a65Address
 | |
| syn match a65Opcode	"\<EOR\($\|\s\)" nextgroup=a65Address
 | |
| syn match a65Opcode	"\<DEX\($\|\s\)" nextgroup=a65Address
 | |
| syn match a65Opcode	"\<BPL\($\|\s\)" nextgroup=a65Address
 | |
| syn match a65Opcode	"\<CLC\($\|\s\)" nextgroup=a65Address
 | |
| syn match a65Opcode	"\<PHY\($\|\s\)" nextgroup=a65Address
 | |
| syn match a65Opcode	"\<TRB\($\|\s\)" nextgroup=a65Address
 | |
| syn match a65Opcode	"\<BBR\($\|\s\)" nextgroup=a65Address
 | |
| syn match a65Opcode	"\<BBS\($\|\s\)" nextgroup=a65Address
 | |
| syn match a65Opcode	"\<RMB\($\|\s\)" nextgroup=a65Address
 | |
| syn match a65Opcode	"\<SMB\($\|\s\)" nextgroup=a65Address
 | |
| syn match a65Opcode	"\<TAY\($\|\s\)" nextgroup=a65Address
 | |
| syn match a65Opcode	"\<TAX\($\|\s\)" nextgroup=a65Address
 | |
| 
 | |
| " Addresses
 | |
| syn match a65Address	"\s*!\=$[0-9A-F]\{2}\($\|\s\)"
 | |
| syn match a65Address	"\s*!\=$[0-9A-F]\{4}\($\|\s\)"
 | |
| syn match a65Address	"\s*!\=$[0-9A-F]\{2},X\($\|\s\)"
 | |
| syn match a65Address	"\s*!\=$[0-9A-F]\{4},X\($\|\s\)"
 | |
| syn match a65Address	"\s*!\=$[0-9A-F]\{2},Y\($\|\s\)"
 | |
| syn match a65Address	"\s*!\=$[0-9A-F]\{4},Y\($\|\s\)"
 | |
| syn match a65Address	"\s*($[0-9A-F]\{2})\($\|\s\)"
 | |
| syn match a65Address	"\s*($[0-9A-F]\{4})\($\|\s\)"
 | |
| syn match a65Address	"\s*($[0-9A-F]\{2},X)\($\|\s\)"
 | |
| syn match a65Address	"\s*($[0-9A-F]\{2}),Y\($\|\s\)"
 | |
| 
 | |
| " Numbers
 | |
| syn match a65Number	"#\=[0-9]*\>"
 | |
| syn match a65Number	"#\=$[0-9A-F]*\>"
 | |
| syn match a65Number	"#\=&[0-7]*\>"
 | |
| syn match a65Number	"#\=%[01]*\>"
 | |
| 
 | |
| syn case match
 | |
| 
 | |
| " Types
 | |
| syn match a65Type	"\(^\|\s\)\.byt\($\|\s\)"
 | |
| syn match a65Type	"\(^\|\s\)\.word\($\|\s\)"
 | |
| syn match a65Type	"\(^\|\s\)\.asc\($\|\s\)"
 | |
| syn match a65Type	"\(^\|\s\)\.dsb\($\|\s\)"
 | |
| syn match a65Type	"\(^\|\s\)\.fopt\($\|\s\)"
 | |
| syn match a65Type	"\(^\|\s\)\.text\($\|\s\)"
 | |
| syn match a65Type	"\(^\|\s\)\.data\($\|\s\)"
 | |
| syn match a65Type	"\(^\|\s\)\.bss\($\|\s\)"
 | |
| syn match a65Type	"\(^\|\s\)\.zero\($\|\s\)"
 | |
| syn match a65Type	"\(^\|\s\)\.align\($\|\s\)"
 | |
| 
 | |
| " Blocks
 | |
| syn match a65Section	"\(^\|\s\)\.(\($\|\s\)"
 | |
| syn match a65Section	"\(^\|\s\)\.)\($\|\s\)"
 | |
| 
 | |
| " Strings
 | |
| syn match a65String	"\".*\""
 | |
| 
 | |
| " Programm Counter
 | |
| syn region a65PC	start="\*=" end="\>" keepend
 | |
| 
 | |
| " HI/LO Byte
 | |
| syn region a65HiLo	start="#[<>]" end="$\|\s" contains=a65Comment keepend
 | |
| 
 | |
| " Comments
 | |
| syn keyword a65Todo	TODO XXX FIXME BUG contained
 | |
| syn match   a65Comment	";.*"hs=s+1 contains=a65Todo
 | |
| syn region  a65Comment	start="/\*" end="\*/" contains=a65Todo,a65Comment
 | |
| 
 | |
| " Preprocessor
 | |
| syn region a65PreProc	start="^#" end="$" contains=a65Comment,a65Continue
 | |
| syn match  a65End			excludenl /end$/ contained
 | |
| syn match  a65Continue	"\\$" contained
 | |
| 
 | |
| " 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_a65_syntax_inits")
 | |
|   if version < 508
 | |
|     let did_a65_syntax_inits = 1
 | |
|     command -nargs=+ HiLink hi link <args>
 | |
|   else
 | |
|     command -nargs=+ HiLink hi def link <args>
 | |
|   endif
 | |
| 
 | |
|   HiLink a65Section	Special
 | |
|   HiLink a65Address	Special
 | |
|   HiLink a65Comment	Comment
 | |
|   HiLink a65PreProc	PreProc
 | |
|   HiLink a65Number	Number
 | |
|   HiLink a65String	String
 | |
|   HiLink a65Type	Statement
 | |
|   HiLink a65Opcode	Type
 | |
|   HiLink a65PC		Error
 | |
|   HiLink a65Todo	Todo
 | |
|   HiLink a65HiLo	Number
 | |
| 
 | |
|   delcommand HiLink
 | |
| endif
 | |
| 
 | |
| let b:current_syntax = "a65"
 |