| 
									
										
										
										
											2010-08-01 21:48:21 +02:00
										 |  |  | " Vim syntax file | 
					
						
							| 
									
										
										
										
											2015-08-11 20:34:49 +02:00
										 |  |  | " Language:	DataScript | 
					
						
							| 
									
										
										
										
											2010-08-01 21:48:21 +02:00
										 |  |  | " Maintainer:	Dominique Pelle <dominique.pelle@gmail.com> | 
					
						
							| 
									
										
										
										
											2015-08-11 20:34:49 +02:00
										 |  |  | " Last Change:	2015 Jul 30 | 
					
						
							| 
									
										
										
										
											2010-08-01 21:48:21 +02:00
										 |  |  | " | 
					
						
							|  |  |  | " DataScript is a formal language for modelling binary datatypes, | 
					
						
							|  |  |  | " bitstreams or file formats. For more information, see: | 
					
						
							| 
									
										
										
										
											2015-08-11 20:34:49 +02:00
										 |  |  | " | 
					
						
							|  |  |  | " http://dstools.sourceforge.net/DataScriptLanguageOverview.html | 
					
						
							| 
									
										
										
										
											2010-08-01 21:48:21 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  | if version < 600 | 
					
						
							|  |  |  |   syntax clear | 
					
						
							|  |  |  | elseif exists("b:current_syntax") | 
					
						
							|  |  |  |   finish | 
					
						
							|  |  |  | endif | 
					
						
							| 
									
										
										
										
											2012-04-30 15:56:52 +02:00
										 |  |  | let s:keepcpo= &cpo | 
					
						
							|  |  |  | set cpo&vim | 
					
						
							| 
									
										
										
										
											2010-08-01 21:48:21 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  | syn keyword dsPackage      import package | 
					
						
							| 
									
										
										
										
											2014-03-27 22:30:07 +01:00
										 |  |  | syn keyword dsType         bit bool string | 
					
						
							|  |  |  | syn keyword dsType         int int8 int16 int32 int64 | 
					
						
							| 
									
										
										
										
											2010-08-01 21:48:21 +02:00
										 |  |  | syn keyword dsType         uint8 uint16 uint32 uint64 | 
					
						
							| 
									
										
										
										
											2015-08-11 20:34:49 +02:00
										 |  |  | syn keyword dsType         varint16 varint32 varint64 | 
					
						
							|  |  |  | syn keyword dsType         varuint16 varuint32 varuint64 | 
					
						
							| 
									
										
										
										
											2010-08-01 21:48:21 +02:00
										 |  |  | 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 | 
					
						
							| 
									
										
										
										
											2014-03-27 22:30:07 +01:00
										 |  |  | syn keyword dsBoolean      true false | 
					
						
							|  |  |  | syn keyword dsCompound     union choice on enum bitmask subtype explicit | 
					
						
							| 
									
										
										
										
											2010-08-01 21:48:21 +02:00
										 |  |  | 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 | 
					
						
							| 
									
										
										
										
											2014-03-27 22:30:07 +01:00
										 |  |  | syn keyword dsSql          sql sql_table sql_database sql_pragma sql_index | 
					
						
							| 
									
										
										
										
											2015-08-11 20:34:49 +02:00
										 |  |  | syn keyword dsSql          sql_integer sql_metadata sql_key sql_virtual | 
					
						
							|  |  |  | syn keyword dsSql          using reference_key foreign_key to | 
					
						
							| 
									
										
										
										
											2010-08-01 21:48:21 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  | " 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 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-08-11 20:34:49 +02:00
										 |  |  | syn sync ccomment dsComment | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-08-01 21:48:21 +02:00
										 |  |  | " 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 | 
					
						
							| 
									
										
										
										
											2014-03-27 22:30:07 +01:00
										 |  |  | hi def link dsBoolean           Boolean | 
					
						
							| 
									
										
										
										
											2010-08-01 21:48:21 +02:00
										 |  |  | 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" | 
					
						
							| 
									
										
										
										
											2012-04-30 15:56:52 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  | let &cpo = s:keepcpo | 
					
						
							|  |  |  | unlet s:keepcpo |