aboutsummaryrefslogtreecommitdiffstats
path: root/Application/hu.bme.mit.inf.dslreasoner.application/src/hu/bme/mit/inf/dslreasoner/application/ApplicationConfiguration.xtext
diff options
context:
space:
mode:
authorLibravatar OszkarSemerath <oszka@SEMERATH-LAPTOP>2018-01-13 19:33:26 +0100
committerLibravatar OszkarSemerath <oszka@SEMERATH-LAPTOP>2018-01-13 19:33:26 +0100
commit7e50434905cbb7f5d03636033b698e17a9075e9d (patch)
tree10e0968c20ac55dae4f5dc6077f39cf9947e3cb9 /Application/hu.bme.mit.inf.dslreasoner.application/src/hu/bme/mit/inf/dslreasoner/application/ApplicationConfiguration.xtext
parentTest and measurement runners (diff)
downloadVIATRA-Generator-7e50434905cbb7f5d03636033b698e17a9075e9d.tar.gz
VIATRA-Generator-7e50434905cbb7f5d03636033b698e17a9075e9d.tar.zst
VIATRA-Generator-7e50434905cbb7f5d03636033b698e17a9075e9d.zip
Initial commit of the configuration language and application
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.xtext127
1 files changed, 127 insertions, 0 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
new file mode 100644
index 00000000..ed83419f
--- /dev/null
+++ b/Application/hu.bme.mit.inf.dslreasoner.application/src/hu/bme/mit/inf/dslreasoner/application/ApplicationConfiguration.xtext
@@ -0,0 +1,127 @@
1grammar hu.bme.mit.inf.dslreasoner.application.ApplicationConfiguration with org.eclipse.xtext.common.Terminals
2
3import "http://www.eclipse.org/emf/2002/Ecore" as ecore
4import "http://www.eclipse.org/viatra/query/patternlanguage/PatternLanguage" as viatra
5generate applicationConfiguration "http://www.bme.hu/mit/inf/dslreasoner/application/ApplicationConfiguration"
6
7ConfigurationScript:
8 (imports += Import)*
9 (commands += Command)*
10;
11
12Command :
13 Declaration
14 //| Task
15;
16Declaration :
17// FileDeclaration |
18 MetamodelDeclaration
19// | PartialModelDeclaration
20// | GraphPatternDeclaration
21// | SolverConfig
22;
23
24///////////////////////////////////////////////////
25// Imports
26///////////////////////////////////////////////////
27
28Import: EPackageImport | ViatraImport;
29
30EPackageImport: "import" "epackage" importedPackage=[ecore::EPackage|STRING];
31ViatraImport: "import" "viatra" importedViatra=[viatra::PatternModel|STRING];
32
33///////////////////////////////////////////////////
34// Files and Folders
35///////////////////////////////////////////////////
36/*
37FileSpecification: path = STRING;
38FileDeclaration: 'file' name = ID '=' specification = FileSpecification;
39
40FileReference: referred = [FileDeclaration];
41File: FileSpecification | FileReference;
42*/
43///////////////////////////////////////////////////
44// Metamodel
45///////////////////////////////////////////////////
46
47MetamodelSpecification: '{' (entries += MetamodelEntry) (',' entries += MetamodelEntry)* '}';
48MetamodelEntry: MetamodelElement | AllPackageEntry;
49AllPackageEntry: "package" package=[ecore::EPackage] ("excluding" '{'exclusion +=MetamodelElement (',' exclusion +=MetamodelElement)*'}')?;
50MetamodelElement: (package=[ecore::EPackage] '::')? classifier = [ecore::EClassifier] ('.' feature= [ecore::ENamedElement])?;
51
52MetamodelDeclaration: 'metamodel' name = ID specification = MetamodelSpecification;
53MetamodelReference: referred = [MetamodelDeclaration];
54Metamodel: MetamodelReference | MetamodelSpecification;
55
56///////////////////////////////////////////////////
57// Partial Model
58///////////////////////////////////////////////////
59/*
60PartialModelEntry: path = File;
61PartialModelSpecification: entry += PartialModelEntry ('+' entry += PartialModelEntry)*;
62PartialModelDeclaration: 'partial-model' name = ID '=' specification = PartialModelSpecification;
63PartialModelReference : referred = [PartialModelDeclaration];
64PartialModel: PartialModelSpecification | PartialModelReference;
65*/
66///////////////////////////////////////////////////
67// Patterns
68///////////////////////////////////////////////////
69/*
70PatternSpecification: '{' entries += PatternEntry (',' entries += PatternEntry)* '}';
71PatternEntry: PatternElement | AllPatternEntry;
72AllPatternEntry: package = [viatra::PatternModel] ('excluding' '{' exclusuion += PatternElement (',' exclusuion += PatternElement)* '}')?;
73PatternElement: pattern = [viatra::Pattern];
74
75GraphPatternDeclaration: 'patterns' name = ID specification = PatternSpecification;
76GraphPatternReference: referred = [GraphPatternDeclaration];
77GraphPattern: GraphPatternReference|PatternSpecification;
78*/
79///////////////////////////////////////////////////
80// SolverConfig
81///////////////////////////////////////////////////
82/*
83SolverConfig : SMTSolverConfig | AlloySolverConfig | ViatraSolverConfig;
84
85SMTSolverConfig:
86 'smt-solver-config' name = ID '{'
87 'solver-path' '=' solverPath = File
88 '}'
89;
90
91AlloySolverConfig:
92 'alloy-solver-config' name = ID '{'
93 ('symmetry' '=' symmetry=INT)?
94 '}'
95;
96
97ViatraSolverConfig:
98 'viatra-solver-config' name = ID '{'
99 ('statecoding' '=' statecoding = ViatraStatecoder)? &
100 ('type-inferencing' '=' typeinferencing = ViatraTypeInferencing)? &
101 ('backtrack-chance' '=' backtrackChance = INT)?
102 '}'
103;
104enum ViatraStatecoder: neighbourhood | identifier;
105enum ViatraTypeInferencing: preliminary | online;
106
107Solver: SMTSolver | AlloySolver | ViatraSolver;
108
109SMTSolver: 'smt-solver' '(' (config = [SMTSolverConfig]) ')';
110AlloySolver: 'alloy-solver' {AlloySolver} '(' (config = [AlloySolverConfig]|'default') ')';
111ViatraSolver: 'viatra-solver' {ViatraSolver} '(' (config= [ViatraSolverConfig]|'default')')';
112
113Task: GenerationTask;
114
115GenerationTask: 'generate' '{'
116 ('metamodel' '=' metamodel = Metamodel) &
117 ('partial-model' '=' partialModel = PartialModel)? &
118 ('patterns' '=' patterns = GraphPattern)? &
119 ('new-objects' '=' size = INT) &
120 ('number' '=' number= INT)? &
121 ('runs' '=' runs = INT)?
122 'target-folder' '=' tagetFolder = File
123 'debug-folder' '=' debugFolder = File
124 ('log' '=' targetLogFile = File)?
125 ('statistics' '=' targetStatisticsFile = File)?
126 '}'
127;*/ \ No newline at end of file