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 | 413 |
1 files changed, 269 insertions, 144 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 2b4a56a6..be1ac662 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 | |||
@@ -6,203 +6,328 @@ import "http://www.bme.hu/mit/inf/dslreasoner/faulttree/components/CftLanguage" | |||
6 | generate applicationConfiguration "http://www.bme.hu/mit/inf/dslreasoner/application/ApplicationConfiguration" | 6 | generate applicationConfiguration "http://www.bme.hu/mit/inf/dslreasoner/application/ApplicationConfiguration" |
7 | 7 | ||
8 | ConfigurationScript: | 8 | ConfigurationScript: |
9 | (imports += Import)* | 9 | (imports+=Import)* |
10 | (commands += Command)* | 10 | (commands+=Command)*; |
11 | ; | ||
12 | 11 | ||
13 | Command : | 12 | Command: |
14 | Declaration | Task | 13 | Declaration | Task; |
15 | ; | ||
16 | 14 | ||
17 | QualifiedName returns ecore::EString: | 15 | QualifiedName returns ecore::EString: |
18 | ID ('.' ID)*; | 16 | ID ('.' ID)*; |
19 | REALLiteral returns ecore::EBigDecimal: '-'? INT '.' INT; | 17 | |
20 | INTLiteral returns ecore::EInt: '-'? INT; | 18 | REALLiteral returns ecore::EBigDecimal: |
19 | '-'? INT '.' INT; | ||
20 | |||
21 | INTLiteral returns ecore::EInt: | ||
22 | '-'? INT; | ||
21 | 23 | ||
22 | /////////////////////////////////////////////////// | 24 | /////////////////////////////////////////////////// |
23 | // Imports | 25 | // Imports |
24 | /////////////////////////////////////////////////// | 26 | /////////////////////////////////////////////////// |
27 | Import: | ||
28 | EPackageImport | ViatraImport | CftImport; | ||
29 | |||
30 | EPackageImport: | ||
31 | "import" "epackage" importedPackage=[ecore::EPackage|STRING]; | ||
25 | 32 | ||
26 | Import: EPackageImport | ViatraImport | CftImport; | 33 | ViatraImport: |
34 | "import" "viatra" importedViatra=[viatra::PatternModel|STRING]; | ||
27 | 35 | ||
28 | EPackageImport: "import" "epackage" importedPackage=[ecore::EPackage|STRING]; | 36 | CftImport: |
29 | ViatraImport: "import" "viatra" importedViatra=[viatra::PatternModel|STRING]; | 37 | "import" "reliability" importedCft=[cftLanguage::CftModel|STRING]; |
30 | CftImport: "import" "reliability" importedCft=[cftLanguage::CftModel|STRING]; | 38 | |
31 | |||
32 | /////////////////////////////////////////////////// | 39 | /////////////////////////////////////////////////// |
33 | // Declaration | 40 | // Declaration |
34 | /////////////////////////////////////////////////// | 41 | /////////////////////////////////////////////////// |
35 | 42 | Declaration: | |
36 | Declaration : | ||
37 | FileDeclaration | 43 | FileDeclaration |
38 | | MetamodelDeclaration | 44 | | MetamodelDeclaration |
39 | | PartialModelDeclaration | 45 | | PartialModelDeclaration |
40 | | GraphPatternDeclaration | 46 | | GraphPatternDeclaration |
41 | | ConfigDeclaration | 47 | | ConfigDeclaration |
42 | | ScopeDeclaration | 48 | | ScopeDeclaration |
43 | | ObjectiveDeclaration | 49 | | ObjectiveDeclaration; |
44 | ; | ||
45 | 50 | ||
46 | /////////////////////////////////////////////////// | 51 | /////////////////////////////////////////////////// |
47 | // Files and Folders | 52 | // Files and Folders |
48 | /////////////////////////////////////////////////// | 53 | /////////////////////////////////////////////////// |
54 | FileSpecification: | ||
55 | path=STRING; | ||
49 | 56 | ||
50 | FileSpecification: path = STRING; | 57 | FileDeclaration: |
51 | FileDeclaration: 'file' name = ID '=' specification = FileSpecification; | 58 | 'file' name=ID '=' specification=FileSpecification; |
52 | FileReference: referred = [FileDeclaration]; | 59 | |
53 | File: FileSpecification | FileReference; | 60 | FileReference: |
61 | referred=[FileDeclaration]; | ||
62 | |||
63 | File: | ||
64 | FileSpecification | FileReference; | ||
54 | 65 | ||
55 | /////////////////////////////////////////////////// | 66 | /////////////////////////////////////////////////// |
56 | // Metamodel | 67 | // Metamodel |
57 | /////////////////////////////////////////////////// | 68 | /////////////////////////////////////////////////// |
69 | MetamodelSpecification: | ||
70 | '{' (entries+=MetamodelEntry) (',' entries+=MetamodelEntry)* '}'; | ||
71 | |||
72 | MetamodelEntry: | ||
73 | MetamodelElement | AllPackageEntry; | ||
74 | |||
75 | AllPackageEntry: | ||
76 | "package" package=[ecore::EPackage|QualifiedName] ("excluding" '{' exclusion+=MetamodelElement (',' | ||
77 | exclusion+=MetamodelElement)* '}')?; | ||
58 | 78 | ||
59 | MetamodelSpecification: '{' (entries += MetamodelEntry) (',' entries += MetamodelEntry)* '}'; | 79 | MetamodelElement: |
60 | MetamodelEntry: MetamodelElement | AllPackageEntry; | 80 | (package=[ecore::EPackage|QualifiedName] '::')? classifier=[ecore::EClassifier] ('.' |
61 | AllPackageEntry: "package" package=[ecore::EPackage|QualifiedName] ("excluding" '{'exclusion +=MetamodelElement (',' exclusion +=MetamodelElement)*'}')?; | 81 | feature=[ecore::ENamedElement])?; |
62 | MetamodelElement: (package=[ecore::EPackage|QualifiedName] '::')? classifier = [ecore::EClassifier] ('.' feature= [ecore::ENamedElement])?; | ||
63 | 82 | ||
64 | MetamodelDeclaration: 'metamodel' name = ID specification = MetamodelSpecification; | 83 | MetamodelDeclaration: |
65 | MetamodelReference: referred = [MetamodelDeclaration]; | 84 | 'metamodel' name=ID specification=MetamodelSpecification; |
66 | Metamodel: MetamodelReference | MetamodelSpecification; | 85 | |
86 | MetamodelReference: | ||
87 | referred=[MetamodelDeclaration]; | ||
88 | |||
89 | Metamodel: | ||
90 | MetamodelReference | MetamodelSpecification; | ||
67 | 91 | ||
68 | /////////////////////////////////////////////////// | 92 | /////////////////////////////////////////////////// |
69 | // Partial Model | 93 | // Partial Model |
70 | /////////////////////////////////////////////////// | 94 | /////////////////////////////////////////////////// |
95 | PartialModelSpecification: | ||
96 | '{' entry+=PartialModelEntry (',' entry+=PartialModelEntry)? '}'; | ||
97 | |||
98 | PartialModelEntry: | ||
99 | ModelEntry | FolderEntry; | ||
100 | |||
101 | ModelEntry: | ||
102 | path=File; | ||
103 | |||
104 | FolderEntry: | ||
105 | "folder" path=File ("excluding" "{" exclusion+=ModelEntry ("," exclusion+=ModelEntry)* "}")?; | ||
71 | 106 | ||
72 | PartialModelSpecification: '{' entry += PartialModelEntry (',' entry += PartialModelEntry)? '}'; | 107 | PartialModelDeclaration: |
73 | PartialModelEntry: ModelEntry | FolderEntry; | 108 | 'models' name=ID specification=PartialModelSpecification; |
74 | ModelEntry: path = File; | ||
75 | FolderEntry: "folder" path = File ("excluding" "{" exclusion += ModelEntry ("," exclusion += ModelEntry)* "}")?; | ||
76 | 109 | ||
77 | PartialModelDeclaration: 'models' name = ID specification = PartialModelSpecification; | 110 | PartialModelReference: |
78 | PartialModelReference : referred = [PartialModelDeclaration]; | 111 | referred=[PartialModelDeclaration]; |
79 | PartialModel: PartialModelSpecification | PartialModelReference; | 112 | |
113 | PartialModel: | ||
114 | PartialModelSpecification | PartialModelReference; | ||
80 | 115 | ||
81 | /////////////////////////////////////////////////// | 116 | /////////////////////////////////////////////////// |
82 | // Patterns | 117 | // Patterns |
83 | /////////////////////////////////////////////////// | 118 | /////////////////////////////////////////////////// |
119 | PatternSpecification: | ||
120 | '{' entries+=PatternEntry (',' entries+=PatternEntry)* '}'; | ||
121 | |||
122 | PatternEntry: | ||
123 | PatternElement | AllPatternEntry; | ||
124 | |||
125 | AllPatternEntry: | ||
126 | 'package' package=[viatra::PatternModel|QualifiedName] ('excluding' '{' exclusuion+=PatternElement (',' | ||
127 | exclusuion+=PatternElement)* '}')?; | ||
128 | |||
129 | PatternElement: | ||
130 | (package=[viatra::PatternModel|QualifiedName] '::')? pattern=[viatra::Pattern]; | ||
84 | 131 | ||
85 | PatternSpecification: '{' entries += PatternEntry (',' entries += PatternEntry)* '}'; | 132 | GraphPatternDeclaration: |
86 | PatternEntry: PatternElement | AllPatternEntry; | 133 | 'constraints' name=ID specification=PatternSpecification; |
87 | AllPatternEntry: 'package' package = [viatra::PatternModel|QualifiedName] ('excluding' '{' exclusuion += PatternElement (',' exclusuion += PatternElement)* '}')?; | ||
88 | PatternElement: (package =[viatra::PatternModel|QualifiedName] '::')? pattern = [viatra::Pattern]; | ||
89 | 134 | ||
90 | GraphPatternDeclaration: 'constraints' name = ID specification = PatternSpecification; | 135 | GraphPatternReference: |
91 | GraphPatternReference: referred = [GraphPatternDeclaration]; | 136 | referred=[GraphPatternDeclaration]; |
92 | GraphPattern: GraphPatternReference|PatternSpecification; | 137 | |
138 | GraphPattern: | ||
139 | GraphPatternReference | PatternSpecification; | ||
93 | 140 | ||
94 | /////////////////////////////////////////////////// | 141 | /////////////////////////////////////////////////// |
95 | // Objectives | 142 | // Objectives |
96 | /////////////////////////////////////////////////// | 143 | /////////////////////////////////////////////////// |
144 | ObjectiveSpecification: | ||
145 | '{' entries+=ObjectiveEntry (',' entries+=ObjectiveEntry)* '}'; | ||
146 | |||
147 | ObjectiveEntry: | ||
148 | OptimizationEntry | ThresholdEntry; | ||
149 | |||
150 | enum OptimizationDirection: | ||
151 | MINIMIZE='minimize' | MAXIMIZE='maximize'; | ||
152 | |||
153 | OptimizationEntry: | ||
154 | direction=OptimizationDirection function=ObjectiveFunction; | ||
155 | |||
156 | enum ComparisonOperator: | ||
157 | LESS='<' | GREATER='>' | LESS_EQUALS='<=' | GREATER_EQUALS='>='; | ||
158 | |||
159 | ThresholdEntry: | ||
160 | function=ObjectiveFunction operator=ComparisonOperator threshold=REALLiteral; | ||
161 | |||
162 | ObjectiveFunction: | ||
163 | CostObjectiveFunction | ReliabilityObjectiveFunction; | ||
164 | |||
165 | CostObjectiveFunction: | ||
166 | 'cost' '{' entries+=CostEntry (',' entries+=CostEntry)* '}'; | ||
167 | |||
168 | CostEntry: | ||
169 | patternElement=PatternElement '=' weight=INTLiteral; | ||
170 | |||
171 | ReliabilityObjectiveFunction: | ||
172 | ReliabiltiyProbability | Mtff; | ||
97 | 173 | ||
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: ReliabilityObjectiveFunction; | ||
105 | ReliabilityObjectiveFunction: ReliabiltiyProbability | Mtff; | ||
106 | ReliabiltiyProbability: | 174 | ReliabiltiyProbability: |
107 | 'reliability' (package=[cftLanguage::CftModel|QualifiedName] '::')? transformation = [cftLanguage::TransformationDefinition] | 175 | 'reliability' (package=[cftLanguage::CftModel|QualifiedName] '::')? |
176 | transformation=[cftLanguage::TransformationDefinition] | ||
108 | 'at' time=REALLiteral; | 177 | 'at' time=REALLiteral; |
178 | |||
109 | Mtff: | 179 | Mtff: |
110 | 'mtff' (package=[cftLanguage::CftModel|QualifiedName] '::')? transformation = [cftLanguage::TransformationDefinition]; | 180 | 'mtff' (package=[cftLanguage::CftModel|QualifiedName] '::')? transformation=[cftLanguage::TransformationDefinition]; |
181 | |||
182 | ObjectiveDeclaration: | ||
183 | 'objectives' name=ID specification=ObjectiveSpecification; | ||
184 | |||
185 | ObjectiveReference: | ||
186 | referred=[ObjectiveDeclaration]; | ||
111 | 187 | ||
112 | ObjectiveDeclaration: 'objectives' name = ID specification = ObjectiveSpecification; | 188 | Objective: |
113 | ObjectiveReference: referred = [ObjectiveDeclaration]; | 189 | ObjectiveReference | ObjectiveSpecification; |
114 | Objective: ObjectiveReference|ObjectiveSpecification; | ||
115 | 190 | ||
116 | /////////////////////////////////////////////////// | 191 | /////////////////////////////////////////////////// |
117 | // SolverConfig | 192 | // SolverConfig |
118 | /////////////////////////////////////////////////// | 193 | /////////////////////////////////////////////////// |
194 | ConfigSpecification: | ||
195 | {ConfigSpecification} '{' | ||
196 | (entries+=ConfigEntry ("," entries+=ConfigEntry)*)? | ||
197 | '}'; | ||
198 | |||
199 | ConfigDeclaration: | ||
200 | 'config' name=ID specification=ConfigSpecification; | ||
201 | |||
202 | ConfigEntry: | ||
203 | DocumentationEntry | RuntimeEntry | MemoryEntry | CustomEntry; | ||
204 | |||
205 | DocumentationEntry: | ||
206 | "log-level" '=' level=DocumentLevelSpecification; | ||
119 | 207 | ||
120 | ConfigSpecification: {ConfigSpecification}'{' | 208 | enum DocumentLevelSpecification: |
121 | (entries += ConfigEntry ("," entries += ConfigEntry)*)? | 209 | none | normal | full; |
210 | |||
211 | RuntimeEntry: | ||
212 | "runtime" "=" millisecLimit=INT; | ||
213 | |||
214 | MemoryEntry: | ||
215 | "memory" "=" megabyteLimit=INT; | ||
216 | |||
217 | CustomEntry: | ||
218 | key=STRING "=" value=STRING; | ||
219 | |||
220 | ConfigReference: | ||
221 | config=[ConfigDeclaration]; | ||
222 | |||
223 | Config: | ||
224 | ConfigSpecification | ConfigReference; | ||
225 | |||
226 | enum Solver: | ||
227 | SMTSolver | AlloySolver | ViatraSolver; | ||
228 | |||
229 | ScopeSpecification: | ||
230 | {ScopeSpecification} '{' | ||
231 | (scopes+=TypeScope (',' scopes+=TypeScope)*)? | ||
122 | '}'; | 232 | '}'; |
123 | ConfigDeclaration : | 233 | |
124 | 'config' name = ID specification = ConfigSpecification | 234 | TypeScope: |
125 | ; | 235 | ClassTypeScope | ObjectTypeScope | IntegerTypeScope | RealTypeScope | StringTypeScope; |
126 | ConfigEntry: DocumentationEntry | RuntimeEntry | MemoryEntry | CustomEntry; | 236 | |
127 | DocumentationEntry: "log-level" '=' level = DocumentLevelSpecification; | 237 | ClassTypeScope: |
128 | enum DocumentLevelSpecification: none | normal | full; | 238 | '#' type=ClassReference |
129 | RuntimeEntry: "runtime" "=" millisecLimit = INT; | 239 | (setsNew?='+=' | setsSum?='=') |
130 | MemoryEntry: "memory" "=" megabyteLimit = INT; | 240 | (number=ExactNumber | number=IntervallNumber); |
131 | CustomEntry: key = STRING "=" value = STRING; | 241 | |
132 | 242 | ObjectTypeScope: | |
133 | ConfigReference: config = [ConfigDeclaration]; | 243 | '#' type=ObjectReference |
134 | Config: ConfigSpecification | ConfigReference; | 244 | (setsNew?='+=' | setsSum?='=') |
135 | 245 | (number=ExactNumber | number=IntervallNumber); | |
136 | enum Solver: SMTSolver | AlloySolver | ViatraSolver; | 246 | |
137 | 247 | IntegerTypeScope: | |
138 | ScopeSpecification: {ScopeSpecification} '{' | 248 | '#' type=IntegerReference |
139 | (scopes += TypeScope (',' scopes += TypeScope)*)? | 249 | (setsNew?='+=' | setsSum?='=') |
140 | '}'; | 250 | (number=ExactNumber | number=IntervallNumber | number=IntEnumberation); |
141 | TypeScope: ClassTypeScope | ObjectTypeScope | IntegerTypeScope | RealTypeScope | StringTypeScope; | 251 | |
142 | ClassTypeScope: '#' type = ClassReference | 252 | RealTypeScope: |
143 | (setsNew ?='+=' | setsSum ?= '=') | 253 | '#' type=RealReference |
144 | (number = ExactNumber | number = IntervallNumber) | 254 | (setsNew?='+=' | setsSum?='=') |
145 | ; | 255 | (number=ExactNumber | number=IntervallNumber | number=RealEnumeration); |
146 | ObjectTypeScope: '#' type = ObjectReference | 256 | |
147 | (setsNew ?='+=' | setsSum ?= '=') | 257 | StringTypeScope: |
148 | (number = ExactNumber | number = IntervallNumber) | 258 | '#' type=StringReference |
149 | ; | 259 | (setsNew?='+=' | setsSum?='=') |
150 | IntegerTypeScope: '#' type = IntegerReference | 260 | (number=ExactNumber | number=IntervallNumber | number=StringEnumeration); |
151 | (setsNew ?='+=' | setsSum ?= '=') | 261 | |
152 | (number = ExactNumber | number = IntervallNumber | number = IntEnumberation) | 262 | TypeReference: |
153 | ; | 263 | ClassReference | ObjectReference | IntegerReference | RealReference | StringReference; |
154 | RealTypeScope: '#' type = RealReference | 264 | |
155 | (setsNew ?='+=' | setsSum ?= '=') | 265 | ClassReference: |
156 | (number = ExactNumber | number = IntervallNumber | number = RealEnumeration) | 266 | '<' element=MetamodelElement '>'; |
157 | ; | 267 | |
158 | StringTypeScope: '#' type = StringReference | 268 | ObjectReference: |
159 | (setsNew ?='+=' | setsSum ?= '=') | 269 | {ObjectReference} 'node'; |
160 | (number = ExactNumber | number = IntervallNumber | number = StringEnumeration) | 270 | |
161 | ; | 271 | IntegerReference: |
162 | 272 | {IntegerScope} 'int'; | |
163 | TypeReference: ClassReference | ObjectReference | IntegerReference | RealReference | StringReference; | 273 | |
164 | ClassReference: '<' element = MetamodelElement '>'; | 274 | RealReference: |
165 | ObjectReference: {ObjectReference} 'node'; | 275 | {RealScope} 'real'; |
166 | IntegerReference: {IntegerScope} 'int'; | 276 | |
167 | RealReference: {RealScope} 'real'; | 277 | StringReference: |
168 | StringReference: {StringScope} 'string'; | 278 | {StringScope} 'string'; |
169 | 279 | ||
170 | NumberSpecification: ExactNumber | IntervallNumber | IntEnumberation | RealEnumeration | StringEnumeration; | 280 | NumberSpecification: |
171 | ExactNumber: exactNumber = INT | exactUnlimited ?= '*'; | 281 | ExactNumber | IntervallNumber | IntEnumberation | RealEnumeration | StringEnumeration; |
172 | IntervallNumber: min = INT '..' (maxNumber = INT | maxUnlimited ?= '*'); | 282 | |
173 | IntEnumberation: {IntEnumberation} '{' (entry += INTLiteral (',' entry += INTLiteral)*)?'}'; | 283 | ExactNumber: |
174 | RealEnumeration: {RealEnumeration} '{' (entry += REALLiteral (',' entry += REALLiteral)*)?'}'; | 284 | exactNumber=INT | exactUnlimited?='*'; |
175 | StringEnumeration: {StringEnumeration} '{' (entry += STRING (',' entry += STRING)*)?'}'; | 285 | |
176 | 286 | IntervallNumber: | |
177 | ScopeDeclaration: 'scope' name = ID specification = ScopeSpecification; | 287 | min=INT '..' (maxNumber=INT | maxUnlimited?='*'); |
178 | ScopeReference: referred = [ScopeDeclaration]; | 288 | |
179 | Scope: ScopeSpecification | ScopeReference; | 289 | IntEnumberation: |
180 | 290 | {IntEnumberation} '{' (entry+=INTLiteral (',' entry+=INTLiteral)*)? '}'; | |
181 | Task: GenerationTask /*| CoverageCalculation | ValidationTask*/; | 291 | |
182 | 292 | RealEnumeration: | |
183 | GenerationTask: 'generate' {GenerationTask} '{'( | 293 | {RealEnumeration} '{' (entry+=REALLiteral (',' entry+=REALLiteral)*)? '}'; |
184 | 294 | ||
185 | // domain | 295 | StringEnumeration: |
186 | ('metamodel' '=' metamodel = Metamodel)? & | 296 | {StringEnumeration} '{' (entry+=STRING (',' entry+=STRING)*)? '}'; |
187 | ('partial-model' '=' partialModel = PartialModel)? & | 297 | |
188 | ('constraints' '=' patterns = GraphPattern)? & | 298 | ScopeDeclaration: |
189 | ('objectives' '=' objectives = Objective)? & | 299 | 'scope' name=ID specification=ScopeSpecification; |
190 | 300 | ||
191 | // model set | 301 | ScopeReference: |
192 | ('scope' '=' scope = Scope)? & | 302 | referred=[ScopeDeclaration]; |
193 | (numberSpecified ?= 'number' '=' number= INT)? & | 303 | |
194 | (runSpecified ?= 'runs' '=' runs = INT)? & | 304 | Scope: |
195 | // Solver | 305 | ScopeSpecification | ScopeReference; |
196 | ('solver' '=' solver = Solver)? & | 306 | |
197 | ('config' '=' config = Config)? & | 307 | Task: |
198 | 308 | GenerationTask /*| CoverageCalculation | ValidationTask*/; | |
199 | // output texts | 309 | |
200 | ('debug' '=' debugFolder = File)? & | 310 | GenerationTask: |
201 | ('log' '=' targetLogFile = File)? & | 311 | 'generate' {GenerationTask} '{' ( |
202 | ('statistics' '=' targetStatisticsFile = File)? & | 312 | |
203 | 313 | // domain | |
204 | // output models | 314 | ('metamodel' '=' metamodel=Metamodel)? & |
205 | ('output' '=' tagetFolder = File)? | 315 | ('partial-model' '=' partialModel=PartialModel)? & |
206 | 316 | ('constraints' '=' patterns=GraphPattern)? & | |
207 | )'}' | 317 | ('objectives' '=' objectives=Objective)? & |
208 | ; \ No newline at end of file | 318 | |
319 | // model set | ||
320 | ('scope' '=' scope=Scope)? & | ||
321 | (numberSpecified?='number' '=' number=INT)? & | ||
322 | (runSpecified?='runs' '=' runs=INT)? & | ||
323 | // Solver | ||
324 | ('solver' '=' solver=Solver)? & | ||
325 | ('config' '=' config=Config)? & | ||
326 | |||
327 | // output texts | ||
328 | ('debug' '=' debugFolder=File)? & | ||
329 | ('log' '=' targetLogFile=File)? & | ||
330 | ('statistics' '=' targetStatisticsFile=File)? & | ||
331 | |||
332 | // output models | ||
333 | ('output' '=' tagetFolder=File)?) '}'; \ No newline at end of file | ||