aboutsummaryrefslogtreecommitdiffstats
path: root/Application/hu.bme.mit.inf.dslreasoner.application/src/hu/bme/mit/inf/dslreasoner/application/ApplicationConfiguration.xtext
diff options
context:
space:
mode:
Diffstat (limited to 'Application/hu.bme.mit.inf.dslreasoner.application/src/hu/bme/mit/inf/dslreasoner/application/ApplicationConfiguration.xtext')
-rw-r--r--Application/hu.bme.mit.inf.dslreasoner.application/src/hu/bme/mit/inf/dslreasoner/application/ApplicationConfiguration.xtext26
1 files changed, 24 insertions, 2 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 6af31723..44ef8fd1 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
@@ -2,6 +2,7 @@ grammar hu.bme.mit.inf.dslreasoner.application.ApplicationConfiguration with org
2 2
3import "http://www.eclipse.org/emf/2002/Ecore" as ecore 3import "http://www.eclipse.org/emf/2002/Ecore" as ecore
4import "http://www.eclipse.org/viatra/query/patternlanguage/emf/PatternLanguage" as viatra 4import "http://www.eclipse.org/viatra/query/patternlanguage/emf/PatternLanguage" as viatra
5import "http://www.bme.hu/mit/inf/dslreasoner/faulttree/components/CftLanguage" as cftLanguage
5generate applicationConfiguration "http://www.bme.hu/mit/inf/dslreasoner/application/ApplicationConfiguration" 6generate applicationConfiguration "http://www.bme.hu/mit/inf/dslreasoner/application/ApplicationConfiguration"
6 7
7ConfigurationScript: 8ConfigurationScript:
@@ -22,10 +23,11 @@ INTLiteral returns ecore::EInt: '-'? INT;
22// Imports 23// Imports
23/////////////////////////////////////////////////// 24///////////////////////////////////////////////////
24 25
25Import: EPackageImport | ViatraImport; 26Import: EPackageImport | ViatraImport | CftImport;
26 27
27EPackageImport: "import" "epackage" importedPackage=[ecore::EPackage|STRING]; 28EPackageImport: "import" "epackage" importedPackage=[ecore::EPackage|STRING];
28ViatraImport: "import" "viatra" importedViatra=[viatra::PatternModel|STRING]; 29ViatraImport: "import" "viatra" importedViatra=[viatra::PatternModel|STRING];
30CftImport: "import" "reliability" importedCft=[cftLanguage::CftModel|STRING];
29 31
30/////////////////////////////////////////////////// 32///////////////////////////////////////////////////
31// Declaration 33// Declaration
@@ -38,6 +40,7 @@ Declaration :
38 | GraphPatternDeclaration 40 | GraphPatternDeclaration
39 | ConfigDeclaration 41 | ConfigDeclaration
40 | ScopeDeclaration 42 | ScopeDeclaration
43 | ObjectiveDeclaration
41; 44;
42 45
43/////////////////////////////////////////////////// 46///////////////////////////////////////////////////
@@ -89,6 +92,23 @@ GraphPatternReference: referred = [GraphPatternDeclaration];
89GraphPattern: GraphPatternReference|PatternSpecification; 92GraphPattern: GraphPatternReference|PatternSpecification;
90 93
91/////////////////////////////////////////////////// 94///////////////////////////////////////////////////
95// Objectives
96///////////////////////////////////////////////////
97
98ObjectiveSpecification: '{' entries += ObjectiveEntry (',' entries += ObjectiveEntry)* '}';
99ObjectiveEntry: OptimizationEntry | ThresholdEntry;
100enum OptimizationDirection: MINIMIZE='minimize' | MAXIMIZE='maximize';
101OptimizationEntry: direction=OptimizationDirection function=ObjectiveFunction;
102enum ComparisonOperator: LESS_EQUALS='<=' | GREATER_EQUALS='>=';
103ThresholdEntry: function=ObjectiveFunction operator=ComparisonOperator threshold=REALLiteral;
104ObjectiveFunction: ReliabiltiyFunction;
105ReliabiltiyFunction: 'reliability' (package=[cftLanguage::CftModel|QualifiedName] '::')? transformation = [cftLanguage::TransformationDefinition];
106
107ObjectiveDeclaration: 'objectives' name = ID specification = ObjectiveSpecification;
108ObjectiveReference: referred = [ObjectiveDeclaration];
109Objective: ObjectiveReference|ObjectiveSpecification;
110
111///////////////////////////////////////////////////
92// SolverConfig 112// SolverConfig
93/////////////////////////////////////////////////// 113///////////////////////////////////////////////////
94 114
@@ -99,7 +119,8 @@ ConfigDeclaration :
99 'config' name = ID specification = ConfigSpecification 119 'config' name = ID specification = ConfigSpecification
100; 120;
101ConfigEntry: DocumentationEntry | RuntimeEntry | MemoryEntry | CustomEntry; 121ConfigEntry: DocumentationEntry | RuntimeEntry | MemoryEntry | CustomEntry;
102DocumentationEntry: "log-level" '=' level = DocumentLevelSpecification; enum DocumentLevelSpecification: none | normal | full; 122DocumentationEntry: "log-level" '=' level = DocumentLevelSpecification;
123enum DocumentLevelSpecification: none | normal | full;
103RuntimeEntry: "runtime" "=" millisecLimit = INT; 124RuntimeEntry: "runtime" "=" millisecLimit = INT;
104MemoryEntry: "memory" "=" megabyteLimit = INT; 125MemoryEntry: "memory" "=" megabyteLimit = INT;
105CustomEntry: key = STRING "=" value = STRING; 126CustomEntry: key = STRING "=" value = STRING;
@@ -160,6 +181,7 @@ GenerationTask: 'generate' {GenerationTask} '{'(
160 ('metamodel' '=' metamodel = Metamodel)? & 181 ('metamodel' '=' metamodel = Metamodel)? &
161 ('partial-model' '=' partialModel = PartialModel)? & 182 ('partial-model' '=' partialModel = PartialModel)? &
162 ('constraints' '=' patterns = GraphPattern)? & 183 ('constraints' '=' patterns = GraphPattern)? &
184 ('objectives' '=' objectives = Objective)? &
163 185
164 // model set 186 // model set
165 ('scope' '=' scope = Scope)? & 187 ('scope' '=' scope = Scope)? &