xref: /vim-8.2.3635/runtime/syntax/srec.vim (revision f37506f6)
15837f1f4SBram Moolenaar" Vim syntax file
25837f1f4SBram Moolenaar" Language:	Motorola S-Record
35837f1f4SBram Moolenaar" Maintainer:	Markus Heidelberg <[email protected]>
45837f1f4SBram Moolenaar" Last Change:	2015 Feb 24
55837f1f4SBram Moolenaar
65837f1f4SBram Moolenaar" Each record (line) is built as follows:
75837f1f4SBram Moolenaar"
85837f1f4SBram Moolenaar"    field       digits          states
95837f1f4SBram Moolenaar"
105837f1f4SBram Moolenaar"  +----------+
115837f1f4SBram Moolenaar"  | start    |  1 ('S')         srecRecStart
125837f1f4SBram Moolenaar"  +----------+
135837f1f4SBram Moolenaar"  | type     |  1               srecRecType, (srecRecTypeUnknown)
145837f1f4SBram Moolenaar"  +----------+
155837f1f4SBram Moolenaar"  | count    |  2               srecByteCount
165837f1f4SBram Moolenaar"  +----------+
175837f1f4SBram Moolenaar"  | address  |  4/6/8           srecNoAddress, srecDataAddress, srecRecCount, srecStartAddress, (srecAddressFieldUnknown)
185837f1f4SBram Moolenaar"  +----------+
195837f1f4SBram Moolenaar"  | data     |  0..504/502/500  srecDataOdd, srecDataEven, (srecDataUnexpected)
205837f1f4SBram Moolenaar"  +----------+
215837f1f4SBram Moolenaar"  | checksum |  2               srecChecksum
225837f1f4SBram Moolenaar"  +----------+
235837f1f4SBram Moolenaar"
245837f1f4SBram Moolenaar" States in parentheses in the upper format description indicate that they
255837f1f4SBram Moolenaar" should not appear in a valid file.
265837f1f4SBram Moolenaar
2789bcfda6SBram Moolenaar" quit when a syntax file was already loaded
2889bcfda6SBram Moolenaarif exists("b:current_syntax")
295837f1f4SBram Moolenaar  finish
305837f1f4SBram Moolenaarendif
315837f1f4SBram Moolenaar
325837f1f4SBram Moolenaarsyn match srecRecStart "^S"
335837f1f4SBram Moolenaar
345837f1f4SBram Moolenaarsyn match srecRecTypeUnknown "^S."        contains=srecRecStart
355837f1f4SBram Moolenaarsyn match srecRecType        "^S[0-35-9]" contains=srecRecStart
365837f1f4SBram Moolenaar
375837f1f4SBram Moolenaarsyn match srecByteCount "^S.[0-9a-fA-F]\{2}"        contains=srecRecTypeUnknown nextgroup=srecAddressFieldUnknown,srecChecksum
385837f1f4SBram Moolenaarsyn match srecByteCount "^S[0-35-9][0-9a-fA-F]\{2}" contains=srecRecType
395837f1f4SBram Moolenaar
405837f1f4SBram Moolenaarsyn match srecAddressFieldUnknown "[0-9a-fA-F]\{2}" contained nextgroup=srecAddressFieldUnknown,srecChecksum
415837f1f4SBram Moolenaar
425837f1f4SBram Moolenaarsyn match srecNoAddress    "^S0[0-9a-fA-F]\{6}"  contains=srecByteCount nextgroup=srecDataOdd,srecChecksum
435837f1f4SBram Moolenaarsyn match srecDataAddress  "^S1[0-9a-fA-F]\{6}"  contains=srecByteCount nextgroup=srecDataOdd,srecChecksum
445837f1f4SBram Moolenaarsyn match srecDataAddress  "^S2[0-9a-fA-F]\{8}"  contains=srecByteCount nextgroup=srecDataOdd,srecChecksum
455837f1f4SBram Moolenaarsyn match srecDataAddress  "^S3[0-9a-fA-F]\{10}" contains=srecByteCount nextgroup=srecDataOdd,srecChecksum
465837f1f4SBram Moolenaarsyn match srecRecCount     "^S5[0-9a-fA-F]\{6}"  contains=srecByteCount nextgroup=srecDataUnexpected,srecChecksum
475837f1f4SBram Moolenaarsyn match srecRecCount     "^S6[0-9a-fA-F]\{8}"  contains=srecByteCount nextgroup=srecDataUnexpected,srecChecksum
485837f1f4SBram Moolenaarsyn match srecStartAddress "^S7[0-9a-fA-F]\{10}" contains=srecByteCount nextgroup=srecDataUnexpected,srecChecksum
495837f1f4SBram Moolenaarsyn match srecStartAddress "^S8[0-9a-fA-F]\{8}"  contains=srecByteCount nextgroup=srecDataUnexpected,srecChecksum
505837f1f4SBram Moolenaarsyn match srecStartAddress "^S9[0-9a-fA-F]\{6}"  contains=srecByteCount nextgroup=srecDataUnexpected,srecChecksum
515837f1f4SBram Moolenaar
525837f1f4SBram Moolenaar" alternating highlight per byte for easier reading
535837f1f4SBram Moolenaarsyn match srecDataOdd        "[0-9a-fA-F]\{2}" contained nextgroup=srecDataEven,srecChecksum
545837f1f4SBram Moolenaarsyn match srecDataEven       "[0-9a-fA-F]\{2}" contained nextgroup=srecDataOdd,srecChecksum
555837f1f4SBram Moolenaar" data bytes which should not exist
565837f1f4SBram Moolenaarsyn match srecDataUnexpected "[0-9a-fA-F]\{2}" contained nextgroup=srecDataUnexpected,srecChecksum
575837f1f4SBram Moolenaar" Data digit pair regex usage also results in only highlighting the checksum
585837f1f4SBram Moolenaar" if the number of data characters is even.
595837f1f4SBram Moolenaar
605837f1f4SBram Moolenaarsyn match srecChecksum "[0-9a-fA-F]\{2}$" contained
615837f1f4SBram Moolenaar
625837f1f4SBram Moolenaar" Define the default highlighting.
6389bcfda6SBram Moolenaar" Only when an item doesn't have highlighting yet
645837f1f4SBram Moolenaar
655837f1f4SBram Moolenaar" The default methods for highlighting. Can be overridden later
66*f37506f6SBram Moolenaarhi def link srecRecStart            srecRecType
67*f37506f6SBram Moolenaarhi def link srecRecTypeUnknown      srecRecType
68*f37506f6SBram Moolenaarhi def link srecRecType             WarningMsg
69*f37506f6SBram Moolenaarhi def link srecByteCount           Constant
705837f1f4SBram Moolenaarhi def srecAddressFieldUnknown term=italic cterm=italic gui=italic
71*f37506f6SBram Moolenaarhi def link srecNoAddress           DiffAdd
72*f37506f6SBram Moolenaarhi def link srecDataAddress         Comment
73*f37506f6SBram Moolenaarhi def link srecRecCount            srecNoAddress
74*f37506f6SBram Moolenaarhi def link srecStartAddress        srecDataAddress
755837f1f4SBram Moolenaarhi def srecDataOdd             term=bold cterm=bold gui=bold
765837f1f4SBram Moolenaarhi def srecDataEven            term=NONE cterm=NONE gui=NONE
77*f37506f6SBram Moolenaarhi def link srecDataUnexpected      Error
78*f37506f6SBram Moolenaarhi def link srecChecksum            DiffChange
795837f1f4SBram Moolenaar
805837f1f4SBram Moolenaar
815837f1f4SBram Moolenaarlet b:current_syntax = "srec"
825837f1f4SBram Moolenaar
835837f1f4SBram Moolenaar" vim: ts=8
84