| " Vim syntax file |
| " Language: Datascript |
| " Maintainer: Dominique Pelle <dominique.pelle@gmail.com> |
| " Last Change: 2012 Apr 30 |
| " |
| " DataScript is a formal language for modelling binary datatypes, |
| " bitstreams or file formats. For more information, see: |
| " http://datascript.berlios.de/DataScriptLanguageOverview.html |
| |
| if version < 600 |
| syntax clear |
| elseif exists("b:current_syntax") |
| finish |
| endif |
| let s:keepcpo= &cpo |
| set cpo&vim |
| |
| syn keyword dsPackage import package |
| syn keyword dsType bit string |
| syn keyword dsType int8 int16 int32 int64 |
| syn keyword dsType uint8 uint16 uint32 uint64 |
| syn keyword dsType leint16 leint32 leint64 |
| syn keyword dsType leuint16 leuint32 leuint64 |
| syn keyword dsEndian little big |
| syn keyword dsAlign align |
| syn keyword dsLabel case default |
| syn keyword dsConditional if condition |
| syn keyword dsCompound union choice on enum bitmask subtype |
| syn keyword dsKeyword function return |
| syn keyword dsOperator sizeof bitsizeof lengthof is sum forall in |
| syn keyword dsStorageClass const |
| syn keyword dsTodo contained TODO FIXME XXX |
| syn keyword dsSql sql sql_table sql_database sql_pragma |
| syn keyword dsSql sql_integer sql_metadata sql_key |
| |
| " dsCommentGroup allows adding matches for special things in comments. |
| syn cluster dsCommentGroup contains=dsTodo |
| |
| syn match dsOffset display "^\s*[a-zA-Z_:\.][a-zA-Z0-9_:\.]*\s*:" |
| |
| syn match dsNumber display "\<\d\+\>" |
| syn match dsNumberHex display "\<0[xX]\x\+\>" |
| syn match dsNumberBin display "\<[01]\+[bB]\>" contains=dsBinaryB |
| syn match dsBinaryB display contained "[bB]\>" |
| syn match dsOctal display "\<0\o\+\>" contains=dsOctalZero |
| syn match dsOctalZero display contained "\<0" |
| |
| syn match dsOctalError display "\<0\o*[89]\d*\>" |
| |
| syn match dsCommentError display "\*/" |
| syn match dsCommentStartError display "/\*"me=e-1 contained |
| |
| syn region dsCommentL |
| \ start="//" skip="\\$" end="$" keepend |
| \ contains=@dsCommentGroup,@Spell |
| syn region dsComment |
| \ matchgroup=dsCommentStart start="/\*" end="\*/" |
| \ contains=@dsCommentGroup,dsCommentStartError,@Spell extend |
| |
| syn region dsString |
| \ start=+L\="+ skip=+\\\\\|\\"+ end=+"+ contains=@Spell |
| |
| " Define the default highlighting. |
| hi def link dsType Type |
| hi def link dsEndian StorageClass |
| hi def link dsStorageClass StorageClass |
| hi def link dsAlign Label |
| hi def link dsLabel Label |
| hi def link dsOffset Label |
| hi def link dsSql PreProc |
| hi def link dsCompound Structure |
| hi def link dsConditional Conditional |
| hi def link dsKeyword Statement |
| hi def link dsString String |
| hi def link dsNumber Number |
| hi def link dsNumberBin Number |
| hi def link dsBinaryB Special |
| hi def link dsOctal Number |
| hi def link dsOctalZero Special |
| hi def link dsOctalError Error |
| hi def link dsNumberHex Number |
| hi def link dsTodo Todo |
| hi def link dsOperator Operator |
| hi def link dsPackage Include |
| hi def link dsCommentError Error |
| hi def link dsCommentStartError Error |
| hi def link dsCommentStart dsComment |
| hi def link dsCommentL dsComment |
| hi def link cCommentL dsComment |
| hi def link dsComment Comment |
| |
| let b:current_syntax = "datascript" |
| |
| let &cpo = s:keepcpo |
| unlet s:keepcpo |