diff options
author | Bram Moolenaar <Bram@vim.org> | 2010-08-01 21:48:21 +0200 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2010-08-01 21:48:21 +0200 |
commit | 90df5507c03e83dfcadb2334a8b1c7229c6caa78 (patch) | |
tree | d6ef3185e4c5297168849349bfc038b8bce888d7 /runtime/syntax | |
parent | 3a0ae77fe644f69b7d3c432d0ceb2d15c43dbdfb (diff) | |
download | vim-90df5507c03e83dfcadb2334a8b1c7229c6caa78.zip |
Add Datascript syntax file. (Dominique Pelle)
Diffstat (limited to 'runtime/syntax')
-rw-r--r-- | runtime/syntax/datascript.vim | 90 |
1 files changed, 90 insertions, 0 deletions
diff --git a/runtime/syntax/datascript.vim b/runtime/syntax/datascript.vim new file mode 100644 index 000000000..b51f41877 --- /dev/null +++ b/runtime/syntax/datascript.vim @@ -0,0 +1,90 @@ +" Vim syntax file +" Language: Datascript +" Maintainer: Dominique Pelle <dominique.pelle@gmail.com> +" Last Change: 2010-08-01 +" +" 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 + +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" |