aboutsummaryrefslogtreecommitdiffstats
path: root/Application/hu.bme.mit.inf.dslreasoner.application/src/hu/bme/mit/inf/dslreasoner/application
diff options
context:
space:
mode:
authorLibravatar OszkarSemerath <oszkar.semerath@gmail.com>2018-02-15 22:55:47 +0100
committerLibravatar OszkarSemerath <oszkar.semerath@gmail.com>2018-02-15 22:55:47 +0100
commit0be8ac9989d7af31c7e3b9f923fbbd7ed9f540ea (patch)
tree711125f4701dc14d6201ed782ca9de0b79616938 /Application/hu.bme.mit.inf.dslreasoner.application/src/hu/bme/mit/inf/dslreasoner/application
parentEclass trace notation changed from "[X]" to "<X>". (diff)
downloadVIATRA-Generator-0be8ac9989d7af31c7e3b9f923fbbd7ed9f540ea.tar.gz
VIATRA-Generator-0be8ac9989d7af31c7e3b9f923fbbd7ed9f540ea.tar.zst
VIATRA-Generator-0be8ac9989d7af31c7e3b9f923fbbd7ed9f540ea.zip
First complete scope grammar
Diffstat (limited to 'Application/hu.bme.mit.inf.dslreasoner.application/src/hu/bme/mit/inf/dslreasoner/application')
-rw-r--r--Application/hu.bme.mit.inf.dslreasoner.application/src/hu/bme/mit/inf/dslreasoner/application/ApplicationConfiguration.xtext51
1 files changed, 43 insertions, 8 deletions
diff --git a/Application/hu.bme.mit.inf.dslreasoner.application/src/hu/bme/mit/inf/dslreasoner/application/ApplicationConfiguration.xtext b/Application/hu.bme.mit.inf.dslreasoner.application/src/hu/bme/mit/inf/dslreasoner/application/ApplicationConfiguration.xtext
index 1d12b3f7..101d1a3f 100644
--- a/Application/hu.bme.mit.inf.dslreasoner.application/src/hu/bme/mit/inf/dslreasoner/application/ApplicationConfiguration.xtext
+++ b/Application/hu.bme.mit.inf.dslreasoner.application/src/hu/bme/mit/inf/dslreasoner/application/ApplicationConfiguration.xtext
@@ -4,7 +4,6 @@ import "http://www.eclipse.org/emf/2002/Ecore" as ecore
4import "http://www.eclipse.org/viatra/query/patternlanguage/PatternLanguage" as viatra 4import "http://www.eclipse.org/viatra/query/patternlanguage/PatternLanguage" as viatra
5generate applicationConfiguration "http://www.bme.hu/mit/inf/dslreasoner/application/ApplicationConfiguration" 5generate applicationConfiguration "http://www.bme.hu/mit/inf/dslreasoner/application/ApplicationConfiguration"
6 6
7
8ConfigurationScript: 7ConfigurationScript:
9 (imports += Import)* 8 (imports += Import)*
10 (commands += Command)* 9 (commands += Command)*
@@ -16,6 +15,8 @@ Command :
16 15
17QualifiedName returns ecore::EString: 16QualifiedName returns ecore::EString:
18 ID ('.' ID)*; 17 ID ('.' ID)*;
18//terminal REAL returns ecore::EBigDecimal: '-'? INT '.' INT;
19//terminal INTEGER returns ecore::EInt: '-'? INT;
19 20
20/////////////////////////////////////////////////// 21///////////////////////////////////////////////////
21// Imports 22// Imports
@@ -106,11 +107,28 @@ enum Solver: SMTSolver | AlloySolver | ViatraSolver;
106ScopeSpecification: {ScopeSpecification} '{' 107ScopeSpecification: {ScopeSpecification} '{'
107 (scopes += TypeScope (',' scopes += TypeScope)*)? 108 (scopes += TypeScope (',' scopes += TypeScope)*)?
108'}'; 109'}';
109TypeScope: '#' type = TypeReference 110TypeScope: ClassTypeScope | ObjectTypeScope | IntegerTypeScope | RealTypeScope | StringTypeScope;
111ClassTypeScope: '#' type = ClassReference
112 (setsNew ?='+=' | setsSum ?= '=')
113 (number = ExactNumber | number = IntervallNumber)
114;
115ObjectTypeScope: '#' type = ObjectReference
110 (setsNew ?='+=' | setsSum ?= '=') 116 (setsNew ?='+=' | setsSum ?= '=')
111 ( min = INT ) 117 (number = ExactNumber | number = IntervallNumber)
112 ('..' (maxUnlimited?='*' | max=INT))?
113; 118;
119IntegerTypeScope: '#' type = IntegerReference
120 (setsNew ?='+=' | setsSum ?= '=')
121 (number = ExactNumber | number = IntervallNumber | number = IntEnumberation)
122;
123RealTypeScope: '#' type = RealReference
124 (setsNew ?='+=' | setsSum ?= '=')
125 (number = ExactNumber | number = IntervallNumber | number = RealEnumeration)
126;
127StringTypeScope: '#' type = StringReference
128 (setsNew ?='+=' | setsSum ?= '=')
129 (number = ExactNumber | number = IntervallNumber | number = StringEnumeration)
130;
131
114TypeReference: ClassReference | ObjectReference | IntegerReference | RealReference | StringReference; 132TypeReference: ClassReference | ObjectReference | IntegerReference | RealReference | StringReference;
115ClassReference: '<' element = MetamodelElement '>'; 133ClassReference: '<' element = MetamodelElement '>';
116ObjectReference: {ObjectReference} 'node'; 134ObjectReference: {ObjectReference} 'node';
@@ -118,6 +136,13 @@ IntegerReference: {IntegerScope} 'int';
118RealReference: {RealScope} 'real'; 136RealReference: {RealScope} 'real';
119StringReference: {StringScope} 'string'; 137StringReference: {StringScope} 'string';
120 138
139NumberSpecification: ExactNumber | IntervallNumber | IntEnumberation | RealEnumeration | StringEnumeration;
140ExactNumber: exactNumber = INT | exactUnlimited ?= '*';
141IntervallNumber: min = INT '..' (maxNumber = INT | maxUnlimited ?= '*');
142IntEnumberation: {IntEnumberation} '{' (entry += INT (',' entry += INT)*)?'}';
143RealEnumeration: {RealEnumeration} '{' (entry += INT (',' entry += INT)*)?'}';
144StringEnumeration: {StringEnumeration} '{' (entry += STRING (',' entry += STRING)*)?'}';
145
121ScopeDeclaration: 'scope' name = ID specification = ScopeSpecification; 146ScopeDeclaration: 'scope' name = ID specification = ScopeSpecification;
122ScopeReference: referred = [ScopeDeclaration]; 147ScopeReference: referred = [ScopeDeclaration];
123Scope: ScopeSpecification | ScopeReference; 148Scope: ScopeSpecification | ScopeReference;
@@ -125,17 +150,27 @@ Scope: ScopeSpecification | ScopeReference;
125Task: GenerationTask /*| CoverageCalculation | ValidationTask*/; 150Task: GenerationTask /*| CoverageCalculation | ValidationTask*/;
126 151
127GenerationTask: 'generate' {GenerationTask} '{'( 152GenerationTask: 'generate' {GenerationTask} '{'(
153
154 // domain
128 ('metamodel' '=' metamodel = Metamodel)? & 155 ('metamodel' '=' metamodel = Metamodel)? &
129 ('partial-model' '=' partialModel = PartialModel)? & 156 ('partial-model' '=' partialModel = PartialModel)? &
130 ('patterns' '=' patterns = GraphPattern)? & 157 ('patterns' '=' patterns = GraphPattern)? &
158
159 // model set
131 ('scope' '=' scope = Scope)? & 160 ('scope' '=' scope = Scope)? &
132 ('number' '=' number= INT)? & 161 (numberSpecified ?= 'number' '=' number= INT)? &
133 ('runs' '=' runs = INT)? & 162 (runSpecified ?= 'runs' '=' runs = INT)? &
163 // Solver
134 ('solver' '=' solver = Solver)? & 164 ('solver' '=' solver = Solver)? &
135 ('config' '=' config = Config)? & 165 ('config' '=' config = Config)? &
136 ('output' '=' tagetFolder = File)? & 166
167 // output texts
137 ('debug' '=' debugFolder = File)? & 168 ('debug' '=' debugFolder = File)? &
138 ('log' '=' targetLogFile = File)? & 169 ('log' '=' targetLogFile = File)? &
139 ('statistics' '=' targetStatisticsFile = File)? 170 ('statistics' '=' targetStatisticsFile = File)? &
171
172 // output models
173 ('output' '=' tagetFolder = File)?
174
140 )'}' 175 )'}'
141; \ No newline at end of file 176; \ No newline at end of file