1" Vim syntax file 2" Language: WSML 3" Maintainer: Thomas Haselwanter <[email protected]> 4" URL: none 5" Last Change: 2006 Apr 30 6 7" quit when a syntax file was already loaded 8if exists("b:current_syntax") 9 finish 10endif 11 12" WSML 13syn keyword wsmlHeader wsmlVariant 14syn keyword wsmlNamespace namespace 15syn keyword wsmlTopLevel concept instance relationInstance ofType usesMediator usesService relation sharedVariables importsOntology 16syn keyword wsmlOntology hasValue memberOf ofType impliesType subConceptOf 17syn keyword wsmlAxiom axiom definedBy 18syn keyword wsmlService assumption effect postcondition precondition capability interface 19syn keyword wsmlTopLevel ooMediator wwMediator wgMediator ggMediator 20syn keyword wsmlMediation usesService source target 21syn match wsmlDataTypes "\( _string\| _decimal\| _integer\| _float\| _double\| _iri\| _sqname\| _boolean\| _duration\| _dateTime\| _time\| _date\| _gyearmonth\| _gyear\| _gmonthday\| _gday\| _gmonth\| _hexbinary\| _base64binary\)\((\S*)\)\?" contains=wsmlString,wsmlNumber,wsmlCharacter 22syn keyword wsmlTopLevel goal webService ontology 23syn keyword wsmlKeywordsInsideLEs true false memberOf hasValue subConceptOf ofType impliesType and or implies impliedBy equivalent neg naf forall exists 24syn keyword wsmlNFP nfp endnfp nonFunctionalProperties endNonFunctionalProperties 25syn region wsmlNFPregion start="nfp\|nonFunctionalProperties" end="endnfp\|endNonFunctionalProperties" contains=ALL 26syn region wsmlNamespace start="namespace" end="}" contains=wsmlIdentifier 27syn match wsmlOperator "!=\|:=:\|=<\|>=\|=\|+\|\*\|/\|<->\|->\|<-\|:-\|!-\|-\|<\|>" 28syn match wsmlBrace "(\|)\|\[\|\]\|{\|}" 29syn match wsmlIdentifier +_"\S*"+ 30syn match wsmlIdentifier "_#\d*" 31syn match wsmlSqName "[0-9A-Za-z]\+#[0-9A-Za-z]\+" 32syn match wsmlVariable "?[0-9A-Za-z]\+" 33 34" ASM-specific code 35syn keyword wsmlBehavioral choreography orchestration transitionRules 36syn keyword wsmlChoreographyPri stateSignature in out shared static controlled 37syn keyword wsmlChoreographySec with do withGrounding forall endForall choose if then endIf 38syn match wsmlChoreographyTer "\(\s\|\_^\)\(add\|delete\|update\)\s*(.*)" contains=wsmlKeywordsInsideLEs,wsmlIdentifier,wsmlSqName,wsmlString,wsmlNumber,wsmlDataTypes,wsmlVariable 39 40" Comments 41syn keyword wsmlTodo contained TODO 42syn keyword wsmlFixMe contained FIXME 43if exists("wsml_comment_strings") 44 syn region wsmlCommentString contained start=+"+ end=+"+ end=+$+ end=+\*/+me=s-1,he=s-1 contains=wsmlSpecial,wsmlCommentStar,wsmlSpecialChar,@Spell 45 syn region wsmlComment2String contained start=+"+ end=+$\|"+ contains=wsmlSpecial,wsmlSpecialChar,@Spell 46 syn match wsmlCommentCharacter contained "'\\[^']\{1,6\}'" contains=wsmlSpecialChar 47 syn match wsmlCommentCharacter contained "'\\''" contains=wsmlSpecialChar 48 syn match wsmlCommentCharacter contained "'[^\\]'" 49 syn cluster wsmlCommentSpecial add=wsmlCommentString,wsmlCommentCharacter,wsmlNumber 50 syn cluster wsmlCommentSpecial2 add=wsmlComment2String,wsmlCommentCharacter,wsmlNumber 51endif 52 53syn region wsmlComment start="/\*" end="\*/" contains=@wsmlCommentSpecial,wsmlTodo,wsmlFixMe,@Spell 54syn match wsmlCommentStar contained "^\s*\*[^/]"me=e-1 55syn match wsmlCommentStar contained "^\s*\*$" 56syn match wsmlLineComment "//.*" contains=@wsmlCommentSpecial2,wsmlTodo,@Spell 57 58syn cluster wsmlTop add=wsmlComment,wsmlLineComment 59 60"match the special comment /**/ 61syn match wsmlComment "/\*\*/" 62 63" Strings 64syn region wsmlString start=+"+ end=+"+ contains=wsmlSpecialChar,wsmlSpecialError,@Spell 65syn match wsmlCharacter "'[^']*'" contains=javaSpecialChar,javaSpecialCharError 66syn match wsmlCharacter "'\\''" contains=javaSpecialChar 67syn match wsmlCharacter "'[^\\]'" 68syn match wsmlNumber "\<\(0[0-7]*\|0[xX]\x\+\|\d\+\)[lL]\=\>" 69syn match wsmlNumber "\(\<\d\+\.\d*\|\.\d\+\)\([eE][-+]\=\d\+\)\=[fFdD]\=" 70syn match wsmlNumber "\<\d\+[eE][-+]\=\d\+[fFdD]\=\>" 71syn match wsmlNumber "\<\d\+\([eE][-+]\=\d\+\)\=[fFdD]\>" 72 73" unicode characters 74syn match wsmlSpecial "\\u\d\{4\}" 75 76syn cluster wsmlTop add=wsmlString,wsmlCharacter,wsmlNumber,wsmlSpecial,wsmlStringError 77 78" Define the default highlighting. 79" Only when an item doesn't have highlighting yet 80hi def link wsmlHeader TypeDef 81hi def link wsmlNamespace TypeDef 82hi def link wsmlOntology Statement 83hi def link wsmlAxiom TypeDef 84hi def link wsmlService TypeDef 85hi def link wsmlNFP TypeDef 86hi def link wsmlTopLevel TypeDef 87hi def link wsmlMediation TypeDef 88hi def link wsmlBehavioral TypeDef 89hi def link wsmlChoreographyPri TypeDef 90hi def link wsmlChoreographySec Operator 91hi def link wsmlChoreographyTer Special 92hi def link wsmlString String 93hi def link wsmlIdentifier Normal 94hi def link wsmlSqName Normal 95hi def link wsmlVariable Define 96hi def link wsmlKeywordsInsideLEs Operator 97hi def link wsmlOperator Operator 98hi def link wsmlBrace Operator 99hi def link wsmlCharacter Character 100hi def link wsmlNumber Number 101hi def link wsmlDataTypes Special 102hi def link wsmlComment Comment 103hi def link wsmlDocComment Comment 104hi def link wsmlLineComment Comment 105hi def link wsmlTodo Todo 106hi def link wsmlFixMe Error 107hi def link wsmlCommentTitle SpecialComment 108hi def link wsmlCommentStar wsmlComment 109 110 111let b:current_syntax = "wsml" 112let b:spell_options="contained" 113 114