xref: /vim-8.2.3635/runtime/syntax/wsml.vim (revision 5f1920ad)
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