diff options
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.xtext | 26 |
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 | ||
3 | import "http://www.eclipse.org/emf/2002/Ecore" as ecore | 3 | import "http://www.eclipse.org/emf/2002/Ecore" as ecore |
4 | import "http://www.eclipse.org/viatra/query/patternlanguage/emf/PatternLanguage" as viatra | 4 | import "http://www.eclipse.org/viatra/query/patternlanguage/emf/PatternLanguage" as viatra |
5 | import "http://www.bme.hu/mit/inf/dslreasoner/faulttree/components/CftLanguage" as cftLanguage | ||
5 | generate applicationConfiguration "http://www.bme.hu/mit/inf/dslreasoner/application/ApplicationConfiguration" | 6 | generate applicationConfiguration "http://www.bme.hu/mit/inf/dslreasoner/application/ApplicationConfiguration" |
6 | 7 | ||
7 | ConfigurationScript: | 8 | ConfigurationScript: |
@@ -22,10 +23,11 @@ INTLiteral returns ecore::EInt: '-'? INT; | |||
22 | // Imports | 23 | // Imports |
23 | /////////////////////////////////////////////////// | 24 | /////////////////////////////////////////////////// |
24 | 25 | ||
25 | Import: EPackageImport | ViatraImport; | 26 | Import: EPackageImport | ViatraImport | CftImport; |
26 | 27 | ||
27 | EPackageImport: "import" "epackage" importedPackage=[ecore::EPackage|STRING]; | 28 | EPackageImport: "import" "epackage" importedPackage=[ecore::EPackage|STRING]; |
28 | ViatraImport: "import" "viatra" importedViatra=[viatra::PatternModel|STRING]; | 29 | ViatraImport: "import" "viatra" importedViatra=[viatra::PatternModel|STRING]; |
30 | CftImport: "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]; | |||
89 | GraphPattern: GraphPatternReference|PatternSpecification; | 92 | GraphPattern: GraphPatternReference|PatternSpecification; |
90 | 93 | ||
91 | /////////////////////////////////////////////////// | 94 | /////////////////////////////////////////////////// |
95 | // Objectives | ||
96 | /////////////////////////////////////////////////// | ||
97 | |||
98 | ObjectiveSpecification: '{' entries += ObjectiveEntry (',' entries += ObjectiveEntry)* '}'; | ||
99 | ObjectiveEntry: OptimizationEntry | ThresholdEntry; | ||
100 | enum OptimizationDirection: MINIMIZE='minimize' | MAXIMIZE='maximize'; | ||
101 | OptimizationEntry: direction=OptimizationDirection function=ObjectiveFunction; | ||
102 | enum ComparisonOperator: LESS_EQUALS='<=' | GREATER_EQUALS='>='; | ||
103 | ThresholdEntry: function=ObjectiveFunction operator=ComparisonOperator threshold=REALLiteral; | ||
104 | ObjectiveFunction: ReliabiltiyFunction; | ||
105 | ReliabiltiyFunction: 'reliability' (package=[cftLanguage::CftModel|QualifiedName] '::')? transformation = [cftLanguage::TransformationDefinition]; | ||
106 | |||
107 | ObjectiveDeclaration: 'objectives' name = ID specification = ObjectiveSpecification; | ||
108 | ObjectiveReference: referred = [ObjectiveDeclaration]; | ||
109 | Objective: 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 | ; |
101 | ConfigEntry: DocumentationEntry | RuntimeEntry | MemoryEntry | CustomEntry; | 121 | ConfigEntry: DocumentationEntry | RuntimeEntry | MemoryEntry | CustomEntry; |
102 | DocumentationEntry: "log-level" '=' level = DocumentLevelSpecification; enum DocumentLevelSpecification: none | normal | full; | 122 | DocumentationEntry: "log-level" '=' level = DocumentLevelSpecification; |
123 | enum DocumentLevelSpecification: none | normal | full; | ||
103 | RuntimeEntry: "runtime" "=" millisecLimit = INT; | 124 | RuntimeEntry: "runtime" "=" millisecLimit = INT; |
104 | MemoryEntry: "memory" "=" megabyteLimit = INT; | 125 | MemoryEntry: "memory" "=" megabyteLimit = INT; |
105 | CustomEntry: key = STRING "=" value = STRING; | 126 | CustomEntry: 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)? & |