190df5507SBram Moolenaar" Vim syntax file 2fc39ecf8SBram Moolenaar" Language: DataScript 390df5507SBram Moolenaar" Maintainer: Dominique Pelle <[email protected]> 4fc39ecf8SBram Moolenaar" Last Change: 2015 Jul 30 590df5507SBram Moolenaar" 690df5507SBram Moolenaar" DataScript is a formal language for modelling binary datatypes, 790df5507SBram Moolenaar" bitstreams or file formats. For more information, see: 8fc39ecf8SBram Moolenaar" 9fc39ecf8SBram Moolenaar" http://dstools.sourceforge.net/DataScriptLanguageOverview.html 1090df5507SBram Moolenaar 11*89bcfda6SBram Moolenaar" quit when a syntax file was already loaded 12*89bcfda6SBram Moolenaarif exists("b:current_syntax") 1390df5507SBram Moolenaar finish 1490df5507SBram Moolenaarendif 159a7224b5SBram Moolenaarlet s:keepcpo= &cpo 169a7224b5SBram Moolenaarset cpo&vim 1790df5507SBram Moolenaar 1890df5507SBram Moolenaarsyn keyword dsPackage import package 1976f3b1adSBram Moolenaarsyn keyword dsType bit bool string 2076f3b1adSBram Moolenaarsyn keyword dsType int int8 int16 int32 int64 2190df5507SBram Moolenaarsyn keyword dsType uint8 uint16 uint32 uint64 22fc39ecf8SBram Moolenaarsyn keyword dsType varint16 varint32 varint64 23fc39ecf8SBram Moolenaarsyn keyword dsType varuint16 varuint32 varuint64 2490df5507SBram Moolenaarsyn keyword dsType leint16 leint32 leint64 2590df5507SBram Moolenaarsyn keyword dsType leuint16 leuint32 leuint64 2690df5507SBram Moolenaarsyn keyword dsEndian little big 2790df5507SBram Moolenaarsyn keyword dsAlign align 2890df5507SBram Moolenaarsyn keyword dsLabel case default 2990df5507SBram Moolenaarsyn keyword dsConditional if condition 3076f3b1adSBram Moolenaarsyn keyword dsBoolean true false 3176f3b1adSBram Moolenaarsyn keyword dsCompound union choice on enum bitmask subtype explicit 3290df5507SBram Moolenaarsyn keyword dsKeyword function return 3390df5507SBram Moolenaarsyn keyword dsOperator sizeof bitsizeof lengthof is sum forall in 3490df5507SBram Moolenaarsyn keyword dsStorageClass const 3590df5507SBram Moolenaarsyn keyword dsTodo contained TODO FIXME XXX 3676f3b1adSBram Moolenaarsyn keyword dsSql sql sql_table sql_database sql_pragma sql_index 37fc39ecf8SBram Moolenaarsyn keyword dsSql sql_integer sql_metadata sql_key sql_virtual 38fc39ecf8SBram Moolenaarsyn keyword dsSql using reference_key foreign_key to 3990df5507SBram Moolenaar 4090df5507SBram Moolenaar" dsCommentGroup allows adding matches for special things in comments. 4190df5507SBram Moolenaarsyn cluster dsCommentGroup contains=dsTodo 4290df5507SBram Moolenaar 4390df5507SBram Moolenaarsyn match dsOffset display "^\s*[a-zA-Z_:\.][a-zA-Z0-9_:\.]*\s*:" 4490df5507SBram Moolenaar 4590df5507SBram Moolenaarsyn match dsNumber display "\<\d\+\>" 4690df5507SBram Moolenaarsyn match dsNumberHex display "\<0[xX]\x\+\>" 4790df5507SBram Moolenaarsyn match dsNumberBin display "\<[01]\+[bB]\>" contains=dsBinaryB 4890df5507SBram Moolenaarsyn match dsBinaryB display contained "[bB]\>" 4990df5507SBram Moolenaarsyn match dsOctal display "\<0\o\+\>" contains=dsOctalZero 5090df5507SBram Moolenaarsyn match dsOctalZero display contained "\<0" 5190df5507SBram Moolenaar 5290df5507SBram Moolenaarsyn match dsOctalError display "\<0\o*[89]\d*\>" 5390df5507SBram Moolenaar 5490df5507SBram Moolenaarsyn match dsCommentError display "\*/" 5590df5507SBram Moolenaarsyn match dsCommentStartError display "/\*"me=e-1 contained 5690df5507SBram Moolenaar 5790df5507SBram Moolenaarsyn region dsCommentL 5890df5507SBram Moolenaar \ start="//" skip="\\$" end="$" keepend 5990df5507SBram Moolenaar \ contains=@dsCommentGroup,@Spell 6090df5507SBram Moolenaarsyn region dsComment 6190df5507SBram Moolenaar \ matchgroup=dsCommentStart start="/\*" end="\*/" 6290df5507SBram Moolenaar \ contains=@dsCommentGroup,dsCommentStartError,@Spell extend 6390df5507SBram Moolenaar 6490df5507SBram Moolenaarsyn region dsString 6590df5507SBram Moolenaar \ start=+L\="+ skip=+\\\\\|\\"+ end=+"+ contains=@Spell 6690df5507SBram Moolenaar 67fc39ecf8SBram Moolenaarsyn sync ccomment dsComment 68fc39ecf8SBram Moolenaar 6990df5507SBram Moolenaar" Define the default highlighting. 7090df5507SBram Moolenaarhi def link dsType Type 7190df5507SBram Moolenaarhi def link dsEndian StorageClass 7290df5507SBram Moolenaarhi def link dsStorageClass StorageClass 7390df5507SBram Moolenaarhi def link dsAlign Label 7490df5507SBram Moolenaarhi def link dsLabel Label 7590df5507SBram Moolenaarhi def link dsOffset Label 7690df5507SBram Moolenaarhi def link dsSql PreProc 7790df5507SBram Moolenaarhi def link dsCompound Structure 7890df5507SBram Moolenaarhi def link dsConditional Conditional 7976f3b1adSBram Moolenaarhi def link dsBoolean Boolean 8090df5507SBram Moolenaarhi def link dsKeyword Statement 8190df5507SBram Moolenaarhi def link dsString String 8290df5507SBram Moolenaarhi def link dsNumber Number 8390df5507SBram Moolenaarhi def link dsNumberBin Number 8490df5507SBram Moolenaarhi def link dsBinaryB Special 8590df5507SBram Moolenaarhi def link dsOctal Number 8690df5507SBram Moolenaarhi def link dsOctalZero Special 8790df5507SBram Moolenaarhi def link dsOctalError Error 8890df5507SBram Moolenaarhi def link dsNumberHex Number 8990df5507SBram Moolenaarhi def link dsTodo Todo 9090df5507SBram Moolenaarhi def link dsOperator Operator 9190df5507SBram Moolenaarhi def link dsPackage Include 9290df5507SBram Moolenaarhi def link dsCommentError Error 9390df5507SBram Moolenaarhi def link dsCommentStartError Error 9490df5507SBram Moolenaarhi def link dsCommentStart dsComment 9590df5507SBram Moolenaarhi def link dsCommentL dsComment 9690df5507SBram Moolenaarhi def link cCommentL dsComment 9790df5507SBram Moolenaarhi def link dsComment Comment 9890df5507SBram Moolenaar 9990df5507SBram Moolenaarlet b:current_syntax = "datascript" 1009a7224b5SBram Moolenaar 1019a7224b5SBram Moolenaarlet &cpo = s:keepcpo 1029a7224b5SBram Moolenaarunlet s:keepcpo 103