mirror of
				https://github.com/vim/vim.git
				synced 2025-11-03 09:44:48 -05:00 
			
		
		
		
	
		
			
				
	
	
		
			84 lines
		
	
	
		
			3.7 KiB
		
	
	
	
		
			VimL
		
	
	
	
	
	
			
		
		
	
	
			84 lines
		
	
	
		
			3.7 KiB
		
	
	
	
		
			VimL
		
	
	
	
	
	
" Vim syntax file
 | 
						|
" Language:	Motorola S-Record
 | 
						|
" Maintainer:	Markus Heidelberg <markus.heidelberg@web.de>
 | 
						|
" Last Change:	2015 Feb 24
 | 
						|
 | 
						|
" Each record (line) is built as follows:
 | 
						|
"
 | 
						|
"    field       digits          states
 | 
						|
"
 | 
						|
"  +----------+
 | 
						|
"  | start    |  1 ('S')         srecRecStart
 | 
						|
"  +----------+
 | 
						|
"  | type     |  1               srecRecType, (srecRecTypeUnknown)
 | 
						|
"  +----------+
 | 
						|
"  | count    |  2               srecByteCount
 | 
						|
"  +----------+
 | 
						|
"  | address  |  4/6/8           srecNoAddress, srecDataAddress, srecRecCount, srecStartAddress, (srecAddressFieldUnknown)
 | 
						|
"  +----------+
 | 
						|
"  | data     |  0..504/502/500  srecDataOdd, srecDataEven, (srecDataUnexpected)
 | 
						|
"  +----------+
 | 
						|
"  | checksum |  2               srecChecksum
 | 
						|
"  +----------+
 | 
						|
"
 | 
						|
" States in parentheses in the upper format description indicate that they
 | 
						|
" should not appear in a valid file.
 | 
						|
 | 
						|
" quit when a syntax file was already loaded
 | 
						|
if exists("b:current_syntax")
 | 
						|
  finish
 | 
						|
endif
 | 
						|
 | 
						|
syn match srecRecStart "^S"
 | 
						|
 | 
						|
syn match srecRecTypeUnknown "^S."        contains=srecRecStart
 | 
						|
syn match srecRecType        "^S[0-35-9]" contains=srecRecStart
 | 
						|
 | 
						|
syn match srecByteCount "^S.[0-9a-fA-F]\{2}"        contains=srecRecTypeUnknown nextgroup=srecAddressFieldUnknown,srecChecksum
 | 
						|
syn match srecByteCount "^S[0-35-9][0-9a-fA-F]\{2}" contains=srecRecType
 | 
						|
 | 
						|
syn match srecAddressFieldUnknown "[0-9a-fA-F]\{2}" contained nextgroup=srecAddressFieldUnknown,srecChecksum
 | 
						|
 | 
						|
syn match srecNoAddress    "^S0[0-9a-fA-F]\{6}"  contains=srecByteCount nextgroup=srecDataOdd,srecChecksum
 | 
						|
syn match srecDataAddress  "^S1[0-9a-fA-F]\{6}"  contains=srecByteCount nextgroup=srecDataOdd,srecChecksum
 | 
						|
syn match srecDataAddress  "^S2[0-9a-fA-F]\{8}"  contains=srecByteCount nextgroup=srecDataOdd,srecChecksum
 | 
						|
syn match srecDataAddress  "^S3[0-9a-fA-F]\{10}" contains=srecByteCount nextgroup=srecDataOdd,srecChecksum
 | 
						|
syn match srecRecCount     "^S5[0-9a-fA-F]\{6}"  contains=srecByteCount nextgroup=srecDataUnexpected,srecChecksum
 | 
						|
syn match srecRecCount     "^S6[0-9a-fA-F]\{8}"  contains=srecByteCount nextgroup=srecDataUnexpected,srecChecksum
 | 
						|
syn match srecStartAddress "^S7[0-9a-fA-F]\{10}" contains=srecByteCount nextgroup=srecDataUnexpected,srecChecksum
 | 
						|
syn match srecStartAddress "^S8[0-9a-fA-F]\{8}"  contains=srecByteCount nextgroup=srecDataUnexpected,srecChecksum
 | 
						|
syn match srecStartAddress "^S9[0-9a-fA-F]\{6}"  contains=srecByteCount nextgroup=srecDataUnexpected,srecChecksum
 | 
						|
 | 
						|
" alternating highlight per byte for easier reading
 | 
						|
syn match srecDataOdd        "[0-9a-fA-F]\{2}" contained nextgroup=srecDataEven,srecChecksum
 | 
						|
syn match srecDataEven       "[0-9a-fA-F]\{2}" contained nextgroup=srecDataOdd,srecChecksum
 | 
						|
" data bytes which should not exist
 | 
						|
syn match srecDataUnexpected "[0-9a-fA-F]\{2}" contained nextgroup=srecDataUnexpected,srecChecksum
 | 
						|
" Data digit pair regex usage also results in only highlighting the checksum
 | 
						|
" if the number of data characters is even.
 | 
						|
 | 
						|
syn match srecChecksum "[0-9a-fA-F]\{2}$" contained
 | 
						|
 | 
						|
" Define the default highlighting.
 | 
						|
" Only when an item doesn't have highlighting yet
 | 
						|
 | 
						|
" The default methods for highlighting. Can be overridden later
 | 
						|
hi def link srecRecStart            srecRecType
 | 
						|
hi def link srecRecTypeUnknown      srecRecType
 | 
						|
hi def link srecRecType             WarningMsg
 | 
						|
hi def link srecByteCount           Constant
 | 
						|
hi def srecAddressFieldUnknown term=italic cterm=italic gui=italic
 | 
						|
hi def link srecNoAddress           DiffAdd
 | 
						|
hi def link srecDataAddress         Comment
 | 
						|
hi def link srecRecCount            srecNoAddress
 | 
						|
hi def link srecStartAddress        srecDataAddress
 | 
						|
hi def srecDataOdd             term=bold cterm=bold gui=bold
 | 
						|
hi def srecDataEven            term=NONE cterm=NONE gui=NONE
 | 
						|
hi def link srecDataUnexpected      Error
 | 
						|
hi def link srecChecksum            DiffChange
 | 
						|
 | 
						|
 | 
						|
let b:current_syntax = "srec"
 | 
						|
 | 
						|
" vim: ts=8
 |