Skip to main content
summaryrefslogtreecommitdiffstats
blob: 2b9695d7774be379b4b8263ece7fc46c850a1cb9 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
/**
 * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf), Loetz GmbH&Co.KG (Heidelberg)
 * All rights reserved. This program and the accompanying materials
 * are made available under the terms of the Eclipse Public License v1.0
 * which accompanies this distribution, and is available at
 * http://www.eclipse.org/legal/epl-v10.html
 *
 * Contributors:
 *         Florian Pirchner - Initial implementation
 */

grammar org.eclipse.osbp.ecview.uisemantics.UISemanticsGrammar with org.eclipse.xtext.xbase.Xbase

import "http://www.eclipse.org/emf/2002/Ecore"
import "http://www.eclipse.org/xtext/common/JavaVMTypes"
import "http://osbp.eclipse.org/ecview/dsl/uimodel/semantics"

UxModel returns UxModel:
	{UxModel}
	importSection=XImportSection?
	('actions' '{'
	viewActions+=UxAction*
	'}')?
	('categories' '{'
	categories+=UxViewCategory*
	'}')?
	elementDefinitions+=UxElementDefinition*;

UxAction returns UxAction:
	name=QualifiedName ('externalCommand' externalCommandId=STRING)? (initialDisabled?="disabled")?;

UxViewCategory returns UxViewCategory:
	name=QualifiedName;

XImportDeclaration returns UxImportSectionDeclaration:
	{UxImportSectionDeclaration}
	('import' ((static?='static' extension?='extension'? importedType=[JvmDeclaredType|QualifiedNameInStaticImport]
	(wildcard?='*' | memberName=ValidID))
	| importedType=[JvmDeclaredType|QualifiedName]
	| importedNamespace=QualifiedNameWithWildcard))
	| (("ePackage" importedEPackage=UxEPackageImport)) ';'?;

UxEPackageImport returns UxEPackageImport:
	ePackage=[EPackage|STRING] 'as' alias=ID;

UxElementDefinition returns UxElementDefinition:
	'element' name=ID '{'
	(uri=UxElementURI)?
	('bindings' '{'
	bindingContainer=UxAvailableBindings
	'}')?
	('visibility' '{'
	visibilityContainer=UxAvailableVisibilityOptions
	'}')?
	('validator' '{'
	validatorContainer=UxAvailableValidatorProperties
	'}')?
	'}';

UxAvailableValidatorProperties returns UxAvailableValidatorProperties:
	{UxAvailableValidatorProperties}
	properties+=UxValidatorProperty*;

UxValidatorProperty returns UxValidatorProperty:
	'property' name=ID;

UxElementURI returns UxElementURI:
	'uri' ePackage=[UxEPackageImport] ":" eClass=[EClass];

UxAvailableBindings returns UxAvailableBindings:
	{UxAvailableBindings}
	('extends' superElement=[UxElementDefinition])?
	bindings+=UxBindingableOption*;

UxAvailableVisibilityOptions returns UxAvailableVisibilityOptions:
	{UxAvailableVisibilityOptions}
	bindings+=UxVisibleableOption*;

UxBindingableOption returns UxBindingableOption:
	(final?='final')? (listbinding?='list')? 'endpoint' name=ID jvmType=JvmTypeReference ('target' targetName=ID)?;

UxVisibleableOption returns UxVisibleableOption:
	'endpoint' name=ID jvmType=JvmTypeReference;

Back to the top