1" Vim syntax file 2" Language: Datascript 3" Maintainer: Dominique Pelle <[email protected]> 4" Last Change: 2012 Apr 30 5" 6" DataScript is a formal language for modelling binary datatypes, 7" bitstreams or file formats. For more information, see: 8" http://datascript.berlios.de/DataScriptLanguageOverview.html 9 10if version < 600 11 syntax clear 12elseif exists("b:current_syntax") 13 finish 14endif 15let s:keepcpo= &cpo 16set cpo&vim 17 18syn keyword dsPackage import package 19syn keyword dsType bit string 20syn keyword dsType int8 int16 int32 int64 21syn keyword dsType uint8 uint16 uint32 uint64 22syn keyword dsType leint16 leint32 leint64 23syn keyword dsType leuint16 leuint32 leuint64 24syn keyword dsEndian little big 25syn keyword dsAlign align 26syn keyword dsLabel case default 27syn keyword dsConditional if condition 28syn keyword dsCompound union choice on enum bitmask subtype 29syn keyword dsKeyword function return 30syn keyword dsOperator sizeof bitsizeof lengthof is sum forall in 31syn keyword dsStorageClass const 32syn keyword dsTodo contained TODO FIXME XXX 33syn keyword dsSql sql sql_table sql_database sql_pragma 34syn keyword dsSql sql_integer sql_metadata sql_key 35 36" dsCommentGroup allows adding matches for special things in comments. 37syn cluster dsCommentGroup contains=dsTodo 38 39syn match dsOffset display "^\s*[a-zA-Z_:\.][a-zA-Z0-9_:\.]*\s*:" 40 41syn match dsNumber display "\<\d\+\>" 42syn match dsNumberHex display "\<0[xX]\x\+\>" 43syn match dsNumberBin display "\<[01]\+[bB]\>" contains=dsBinaryB 44syn match dsBinaryB display contained "[bB]\>" 45syn match dsOctal display "\<0\o\+\>" contains=dsOctalZero 46syn match dsOctalZero display contained "\<0" 47 48syn match dsOctalError display "\<0\o*[89]\d*\>" 49 50syn match dsCommentError display "\*/" 51syn match dsCommentStartError display "/\*"me=e-1 contained 52 53syn region dsCommentL 54 \ start="//" skip="\\$" end="$" keepend 55 \ contains=@dsCommentGroup,@Spell 56syn region dsComment 57 \ matchgroup=dsCommentStart start="/\*" end="\*/" 58 \ contains=@dsCommentGroup,dsCommentStartError,@Spell extend 59 60syn region dsString 61 \ start=+L\="+ skip=+\\\\\|\\"+ end=+"+ contains=@Spell 62 63" Define the default highlighting. 64hi def link dsType Type 65hi def link dsEndian StorageClass 66hi def link dsStorageClass StorageClass 67hi def link dsAlign Label 68hi def link dsLabel Label 69hi def link dsOffset Label 70hi def link dsSql PreProc 71hi def link dsCompound Structure 72hi def link dsConditional Conditional 73hi def link dsKeyword Statement 74hi def link dsString String 75hi def link dsNumber Number 76hi def link dsNumberBin Number 77hi def link dsBinaryB Special 78hi def link dsOctal Number 79hi def link dsOctalZero Special 80hi def link dsOctalError Error 81hi def link dsNumberHex Number 82hi def link dsTodo Todo 83hi def link dsOperator Operator 84hi def link dsPackage Include 85hi def link dsCommentError Error 86hi def link dsCommentStartError Error 87hi def link dsCommentStart dsComment 88hi def link dsCommentL dsComment 89hi def link cCommentL dsComment 90hi def link dsComment Comment 91 92let b:current_syntax = "datascript" 93 94let &cpo = s:keepcpo 95unlet s:keepcpo 96