aboutsummaryrefslogtreecommitdiffstats
path: root/Application/org.eclipse.viatra.solver.language/model
diff options
context:
space:
mode:
Diffstat (limited to 'Application/org.eclipse.viatra.solver.language/model')
-rw-r--r--Application/org.eclipse.viatra.solver.language/model/SolverLanguage.ecore (renamed from Application/org.eclipse.viatra.solver.language/model/generated/SolverLanguage.ecore)106
-rw-r--r--Application/org.eclipse.viatra.solver.language/model/SolverLanguage.genmodel (renamed from Application/org.eclipse.viatra.solver.language/model/generated/SolverLanguage.genmodel)98
2 files changed, 145 insertions, 59 deletions
diff --git a/Application/org.eclipse.viatra.solver.language/model/generated/SolverLanguage.ecore b/Application/org.eclipse.viatra.solver.language/model/SolverLanguage.ecore
index bd516038..905e5a90 100644
--- a/Application/org.eclipse.viatra.solver.language/model/generated/SolverLanguage.ecore
+++ b/Application/org.eclipse.viatra.solver.language/model/SolverLanguage.ecore
@@ -26,38 +26,63 @@
26 <eStructuralFeatures xsi:type="ecore:EReference" name="range" eType="#//Expression" 26 <eStructuralFeatures xsi:type="ecore:EReference" name="range" eType="#//Expression"
27 containment="true"/> 27 containment="true"/>
28 </eClassifiers> 28 </eClassifiers>
29 <eClassifiers xsi:type="ecore:EClass" name="ExternPredicateDefinition" eSuperTypes="#//Statement">
30 <eStructuralFeatures xsi:type="ecore:EReference" name="head" eType="#//Call" containment="true"/>
31 </eClassifiers>
32 <eClassifiers xsi:type="ecore:EEnum" name="MetricType">
33 <eLiterals name="INT" literal="int"/>
34 <eLiterals name="REAL" value="1" literal="real"/>
35 </eClassifiers>
36 <eClassifiers xsi:type="ecore:EClass" name="MetricDefinition" eSuperTypes="#//Statement"> 29 <eClassifiers xsi:type="ecore:EClass" name="MetricDefinition" eSuperTypes="#//Statement">
37 <eStructuralFeatures xsi:type="ecore:EReference" name="head" eType="#//Expression" 30 <eStructuralFeatures xsi:type="ecore:EReference" name="head" eType="#//Expression"
38 containment="true"/> 31 containment="true"/>
39 <eStructuralFeatures xsi:type="ecore:EReference" name="body" eType="#//Expression" 32 <eStructuralFeatures xsi:type="ecore:EReference" name="body" eType="#//Expression"
40 containment="true"/> 33 containment="true"/>
41 <eStructuralFeatures xsi:type="ecore:EAttribute" name="type" eType="#//MetricType"/> 34 <eStructuralFeatures xsi:type="ecore:EReference" name="type" eType="#//NamedElement"/>
35 </eClassifiers>
36 <eClassifiers xsi:type="ecore:EClass" name="ExternPredicateDefinition" eSuperTypes="#//Statement">
37 <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
38 <eStructuralFeatures xsi:type="ecore:EReference" name="argumentList" eType="#//ArgumentList"
39 containment="true"/>
42 </eClassifiers> 40 </eClassifiers>
43 <eClassifiers xsi:type="ecore:EClass" name="ExternMetricDefinition" eSuperTypes="#//Statement"> 41 <eClassifiers xsi:type="ecore:EClass" name="ExternMetricDefinition" eSuperTypes="#//Statement">
44 <eStructuralFeatures xsi:type="ecore:EAttribute" name="type" eType="#//MetricType"/> 42 <eStructuralFeatures xsi:type="ecore:EReference" name="type" eType="#//NamedElement"/>
45 <eStructuralFeatures xsi:type="ecore:EReference" name="head" eType="#//Call" containment="true"/> 43 <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
44 <eStructuralFeatures xsi:type="ecore:EReference" name="argumentList" eType="#//ArgumentList"
45 containment="true"/>
46 </eClassifiers>
47 <eClassifiers xsi:type="ecore:EClass" name="ExternAggregatorDefinition" eSuperTypes="#//Statement">
48 <eStructuralFeatures xsi:type="ecore:EReference" name="type" eType="#//NamedElement"/>
49 <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
50 <eStructuralFeatures xsi:type="ecore:EReference" name="inputType" eType="#//NamedElement"/>
51 </eClassifiers>
52 <eClassifiers xsi:type="ecore:EClass" name="ExternDatatypeDefinition" eSuperTypes="#//Statement">
53 <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
54 <eStructuralFeatures xsi:type="ecore:EReference" name="supertypes" unique="false"
55 upperBound="-1" eType="#//NamedElement"/>
46 </eClassifiers> 56 </eClassifiers>
47 <eClassifiers xsi:type="ecore:EClass" name="Expression" eSuperTypes="#//Statement"/> 57 <eClassifiers xsi:type="ecore:EClass" name="NamedElement">
58 <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
59 </eClassifiers>
60 <eClassifiers xsi:type="ecore:EClass" name="Expression" abstract="true" eSuperTypes="#//Statement"/>
48 <eClassifiers xsi:type="ecore:EClass" name="IfElse" eSuperTypes="#//Expression"> 61 <eClassifiers xsi:type="ecore:EClass" name="IfElse" eSuperTypes="#//Expression">
49 <eStructuralFeatures xsi:type="ecore:EReference" name="condition" eType="#//Expression"
50 containment="true"/>
51 <eStructuralFeatures xsi:type="ecore:EReference" name="then" eType="#//Expression" 62 <eStructuralFeatures xsi:type="ecore:EReference" name="then" eType="#//Expression"
52 containment="true"/> 63 containment="true"/>
53 <eStructuralFeatures xsi:type="ecore:EReference" name="else" eType="#//Expression" 64 <eStructuralFeatures xsi:type="ecore:EReference" name="else" eType="#//Expression"
54 containment="true"/> 65 containment="true"/>
55 </eClassifiers>
56 <eClassifiers xsi:type="ecore:EClass" name="Case" eSuperTypes="#//Expression">
57 <eStructuralFeatures xsi:type="ecore:EReference" name="condition" eType="#//Expression" 66 <eStructuralFeatures xsi:type="ecore:EReference" name="condition" eType="#//Expression"
58 containment="true"/> 67 containment="true"/>
68 </eClassifiers>
69 <eClassifiers xsi:type="ecore:EClass" name="Let" eSuperTypes="#//Expression">
70 <eStructuralFeatures xsi:type="ecore:EReference" name="bindings" upperBound="-1"
71 eType="#//LetBinding" containment="true"/>
72 <eStructuralFeatures xsi:type="ecore:EReference" name="body" eType="#//Expression"
73 containment="true"/>
74 </eClassifiers>
75 <eClassifiers xsi:type="ecore:EClass" name="LetBinding">
76 <eStructuralFeatures xsi:type="ecore:EReference" name="variable" eType="#//NamedElement"
77 containment="true"/>
78 <eStructuralFeatures xsi:type="ecore:EReference" name="value" eType="#//Expression"
79 containment="true"/>
80 </eClassifiers>
81 <eClassifiers xsi:type="ecore:EClass" name="Case" eSuperTypes="#//Expression">
59 <eStructuralFeatures xsi:type="ecore:EReference" name="body" eType="#//Expression" 82 <eStructuralFeatures xsi:type="ecore:EReference" name="body" eType="#//Expression"
60 containment="true"/> 83 containment="true"/>
84 <eStructuralFeatures xsi:type="ecore:EReference" name="condition" eType="#//Expression"
85 containment="true"/>
61 </eClassifiers> 86 </eClassifiers>
62 <eClassifiers xsi:type="ecore:EEnum" name="BinaryOperator"> 87 <eClassifiers xsi:type="ecore:EEnum" name="BinaryOperator">
63 <eLiterals name="EQ" literal="EQ"/> 88 <eLiterals name="EQ" literal="EQ"/>
@@ -72,6 +97,7 @@
72 <eLiterals name="MUL" value="9" literal="MUL"/> 97 <eLiterals name="MUL" value="9" literal="MUL"/>
73 <eLiterals name="DIV" value="10" literal="DIV"/> 98 <eLiterals name="DIV" value="10" literal="DIV"/>
74 <eLiterals name="POW" value="11" literal="POW"/> 99 <eLiterals name="POW" value="11" literal="POW"/>
100 <eLiterals name="IMPLIES" value="12"/>
75 </eClassifiers> 101 </eClassifiers>
76 <eClassifiers xsi:type="ecore:EEnum" name="UnaryOp"> 102 <eClassifiers xsi:type="ecore:EEnum" name="UnaryOp">
77 <eLiterals name="NEG" literal="!"/> 103 <eLiterals name="NEG" literal="!"/>
@@ -81,20 +107,21 @@
81 <eLiterals name="MUST" value="4" literal="must"/> 107 <eLiterals name="MUST" value="4" literal="must"/>
82 <eLiterals name="CURRENT" value="5" literal="current"/> 108 <eLiterals name="CURRENT" value="5" literal="current"/>
83 </eClassifiers> 109 </eClassifiers>
84 <eClassifiers xsi:type="ecore:EClass" name="Count" eSuperTypes="#//Expression"> 110 <eClassifiers xsi:type="ecore:EClass" name="LocalVariables">
111 <eStructuralFeatures xsi:type="ecore:EReference" name="variables" upperBound="-1"
112 eType="#//NamedElement" containment="true"/>
113 </eClassifiers>
114 <eClassifiers xsi:type="ecore:EClass" name="QuantifiedExpression" eSuperTypes="#//Expression">
115 <eStructuralFeatures xsi:type="ecore:EReference" name="localVariables" eType="#//LocalVariables"
116 containment="true"/>
85 <eStructuralFeatures xsi:type="ecore:EReference" name="body" eType="#//Expression" 117 <eStructuralFeatures xsi:type="ecore:EReference" name="body" eType="#//Expression"
86 containment="true"/> 118 containment="true"/>
87 </eClassifiers> 119 <eStructuralFeatures xsi:type="ecore:EAttribute" name="quantifier" eType="#//Quantifier"/>
88 <eClassifiers xsi:type="ecore:EEnum" name="AggregationOp">
89 <eLiterals name="ONLY" literal="only"/>
90 <eLiterals name="SUM" value="1" literal="sum"/>
91 <eLiterals name="PROD" value="2" literal="prod"/>
92 <eLiterals name="AVG" value="3" literal="avg"/>
93 <eLiterals name="MIN" value="4" literal="min"/>
94 <eLiterals name="MAX" value="5" literal="max"/>
95 </eClassifiers> 120 </eClassifiers>
96 <eClassifiers xsi:type="ecore:EClass" name="Aggregation" eSuperTypes="#//Expression"> 121 <eClassifiers xsi:type="ecore:EClass" name="Aggregation" eSuperTypes="#//Expression">
97 <eStructuralFeatures xsi:type="ecore:EAttribute" name="op" eType="#//AggregationOp"/> 122 <eStructuralFeatures xsi:type="ecore:EReference" name="op" eType="#//NamedElement"/>
123 <eStructuralFeatures xsi:type="ecore:EReference" name="localVariables" eType="#//LocalVariables"
124 containment="true"/>
98 <eStructuralFeatures xsi:type="ecore:EReference" name="body" eType="#//Expression" 125 <eStructuralFeatures xsi:type="ecore:EReference" name="body" eType="#//Expression"
99 containment="true"/> 126 containment="true"/>
100 <eStructuralFeatures xsi:type="ecore:EReference" name="condition" eType="#//Expression" 127 <eStructuralFeatures xsi:type="ecore:EReference" name="condition" eType="#//Expression"
@@ -200,15 +227,15 @@
200 <eStructuralFeatures xsi:type="ecore:EReference" name="objective" eType="#//Expression" 227 <eStructuralFeatures xsi:type="ecore:EReference" name="objective" eType="#//Expression"
201 containment="true"/> 228 containment="true"/>
202 </eClassifiers> 229 </eClassifiers>
203 <eClassifiers xsi:type="ecore:EClass" name="NamedElement"> 230 <eClassifiers xsi:type="ecore:EClass" name="Interpretation" eSuperTypes="#//Statement">
204 <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
205 </eClassifiers>
206 <eClassifiers xsi:type="ecore:EClass" name="Assertion" eSuperTypes="#//Statement">
207 <eStructuralFeatures xsi:type="ecore:EReference" name="body" eType="#//Expression" 231 <eStructuralFeatures xsi:type="ecore:EReference" name="body" eType="#//Expression"
208 containment="true"/> 232 containment="true"/>
209 <eStructuralFeatures xsi:type="ecore:EReference" name="range" eType="#//Expression" 233 <eStructuralFeatures xsi:type="ecore:EReference" name="range" eType="#//Expression"
210 containment="true"/> 234 containment="true"/>
211 </eClassifiers> 235 </eClassifiers>
236 <eClassifiers xsi:type="ecore:EClass" name="Variable" eSuperTypes="#//NamedElement">
237 <eStructuralFeatures xsi:type="ecore:EReference" name="type" eType="#//NamedElement"/>
238 </eClassifiers>
212 <eClassifiers xsi:type="ecore:EClass" name="Disjunction" eSuperTypes="#//Expression"> 239 <eClassifiers xsi:type="ecore:EClass" name="Disjunction" eSuperTypes="#//Expression">
213 <eStructuralFeatures xsi:type="ecore:EReference" name="children" upperBound="-1" 240 <eStructuralFeatures xsi:type="ecore:EReference" name="children" upperBound="-1"
214 eType="#//Expression" containment="true"/> 241 eType="#//Expression" containment="true"/>
@@ -235,9 +262,30 @@
235 <eStructuralFeatures xsi:type="ecore:EReference" name="right" eType="#//Expression" 262 <eStructuralFeatures xsi:type="ecore:EReference" name="right" eType="#//Expression"
236 containment="true"/> 263 containment="true"/>
237 </eClassifiers> 264 </eClassifiers>
265 <eClassifiers xsi:type="ecore:EClass" name="CastExpression" eSuperTypes="#//Expression">
266 <eStructuralFeatures xsi:type="ecore:EReference" name="body" eType="#//Expression"
267 containment="true"/>
268 <eStructuralFeatures xsi:type="ecore:EReference" name="type" eType="#//NamedElement"/>
269 </eClassifiers>
238 <eClassifiers xsi:type="ecore:EClass" name="UnaryExpression" eSuperTypes="#//Expression"> 270 <eClassifiers xsi:type="ecore:EClass" name="UnaryExpression" eSuperTypes="#//Expression">
239 <eStructuralFeatures xsi:type="ecore:EAttribute" name="op" eType="#//UnaryOp"/> 271 <eStructuralFeatures xsi:type="ecore:EAttribute" name="op" eType="#//UnaryOp"/>
240 <eStructuralFeatures xsi:type="ecore:EReference" name="body" eType="#//Expression" 272 <eStructuralFeatures xsi:type="ecore:EReference" name="body" eType="#//Expression"
241 containment="true"/> 273 containment="true"/>
242 </eClassifiers> 274 </eClassifiers>
275 <eClassifiers xsi:type="ecore:EClass" name="Node" eSuperTypes="#//NamedElement">
276 <eStructuralFeatures xsi:type="ecore:EAttribute" name="withId" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
277 </eClassifiers>
278 <eClassifiers xsi:type="ecore:EClass" name="Functor" abstract="true" eSuperTypes="#//NamedElement">
279 <eStructuralFeatures xsi:type="ecore:EReference" name="parameters" upperBound="-1"
280 eType="#//Variable"/>
281 </eClassifiers>
282 <eClassifiers xsi:type="ecore:EClass" name="Predicate" eSuperTypes="#//Functor"/>
283 <eClassifiers xsi:type="ecore:EClass" name="Metric" eSuperTypes="#//Functor">
284 <eStructuralFeatures xsi:type="ecore:EReference" name="returnType" eType="#//NamedElement"/>
285 </eClassifiers>
286 <eClassifiers xsi:type="ecore:EEnum" name="Quantifier">
287 <eLiterals name="EXISTS"/>
288 <eLiterals name="FORALL" value="1"/>
289 <eLiterals name="COUNT" value="2"/>
290 </eClassifiers>
243</ecore:EPackage> 291</ecore:EPackage>
diff --git a/Application/org.eclipse.viatra.solver.language/model/generated/SolverLanguage.genmodel b/Application/org.eclipse.viatra.solver.language/model/SolverLanguage.genmodel
index 53c17e2a..2325d668 100644
--- a/Application/org.eclipse.viatra.solver.language/model/generated/SolverLanguage.genmodel
+++ b/Application/org.eclipse.viatra.solver.language/model/SolverLanguage.genmodel
@@ -1,15 +1,13 @@
1<?xml version="1.0" encoding="UTF-8"?> 1<?xml version="1.0" encoding="UTF-8"?>
2<genmodel:GenModel xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" 2<genmodel:GenModel xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore"
3 xmlns:genmodel="http://www.eclipse.org/emf/2002/GenModel" copyrightText="generated by Xtext 2.21.0" modelDirectory="/org.eclipse.viatra.solver.language/src-gen" 3 xmlns:genmodel="http://www.eclipse.org/emf/2002/GenModel" copyrightText="generated by Xtext 2.21.0" modelDirectory="/org.eclipse.viatra.solver.language/ecore-gen"
4 modelPluginID="org.eclipse.viatra.solver.language" forceOverwrite="true" modelName="SolverLanguage" 4 modelPluginID="org.eclipse.viatra.solver.language" forceOverwrite="true" modelName="SolverLanguage"
5 updateClasspath="false" rootExtendsClass="org.eclipse.emf.ecore.impl.MinimalEObjectImpl$Container" 5 updateClasspath="false" rootExtendsClass="org.eclipse.emf.ecore.impl.MinimalEObjectImpl$Container"
6 complianceLevel="8.0" copyrightFields="false" runtimeVersion="2.20"> 6 importerID="org.eclipse.emf.importer.ecore" complianceLevel="8.0" copyrightFields="false"
7 runtimeVersion="2.20">
8 <foreignModel>SolverLanguage.ecore</foreignModel>
7 <genPackages prefix="SolverLanguage" basePackage="org.eclipse.viatra.solver.language" 9 <genPackages prefix="SolverLanguage" basePackage="org.eclipse.viatra.solver.language"
8 disposableProviderFactory="true" fileExtensions="vsc" ecorePackage="SolverLanguage.ecore#/"> 10 disposableProviderFactory="true" fileExtensions="vsc" ecorePackage="SolverLanguage.ecore#/">
9 <genEnums typeSafeEnumCompatible="false" ecoreEnum="SolverLanguage.ecore#//MetricType">
10 <genEnumLiterals ecoreEnumLiteral="SolverLanguage.ecore#//MetricType/INT"/>
11 <genEnumLiterals ecoreEnumLiteral="SolverLanguage.ecore#//MetricType/REAL"/>
12 </genEnums>
13 <genEnums typeSafeEnumCompatible="false" ecoreEnum="SolverLanguage.ecore#//BinaryOperator"> 11 <genEnums typeSafeEnumCompatible="false" ecoreEnum="SolverLanguage.ecore#//BinaryOperator">
14 <genEnumLiterals ecoreEnumLiteral="SolverLanguage.ecore#//BinaryOperator/EQ"/> 12 <genEnumLiterals ecoreEnumLiteral="SolverLanguage.ecore#//BinaryOperator/EQ"/>
15 <genEnumLiterals ecoreEnumLiteral="SolverLanguage.ecore#//BinaryOperator/NOT_EQ"/> 13 <genEnumLiterals ecoreEnumLiteral="SolverLanguage.ecore#//BinaryOperator/NOT_EQ"/>
@@ -23,6 +21,7 @@
23 <genEnumLiterals ecoreEnumLiteral="SolverLanguage.ecore#//BinaryOperator/MUL"/> 21 <genEnumLiterals ecoreEnumLiteral="SolverLanguage.ecore#//BinaryOperator/MUL"/>
24 <genEnumLiterals ecoreEnumLiteral="SolverLanguage.ecore#//BinaryOperator/DIV"/> 22 <genEnumLiterals ecoreEnumLiteral="SolverLanguage.ecore#//BinaryOperator/DIV"/>
25 <genEnumLiterals ecoreEnumLiteral="SolverLanguage.ecore#//BinaryOperator/POW"/> 23 <genEnumLiterals ecoreEnumLiteral="SolverLanguage.ecore#//BinaryOperator/POW"/>
24 <genEnumLiterals ecoreEnumLiteral="SolverLanguage.ecore#//BinaryOperator/IMPLIES"/>
26 </genEnums> 25 </genEnums>
27 <genEnums typeSafeEnumCompatible="false" ecoreEnum="SolverLanguage.ecore#//UnaryOp"> 26 <genEnums typeSafeEnumCompatible="false" ecoreEnum="SolverLanguage.ecore#//UnaryOp">
28 <genEnumLiterals ecoreEnumLiteral="SolverLanguage.ecore#//UnaryOp/NEG"/> 27 <genEnumLiterals ecoreEnumLiteral="SolverLanguage.ecore#//UnaryOp/NEG"/>
@@ -32,14 +31,6 @@
32 <genEnumLiterals ecoreEnumLiteral="SolverLanguage.ecore#//UnaryOp/MUST"/> 31 <genEnumLiterals ecoreEnumLiteral="SolverLanguage.ecore#//UnaryOp/MUST"/>
33 <genEnumLiterals ecoreEnumLiteral="SolverLanguage.ecore#//UnaryOp/CURRENT"/> 32 <genEnumLiterals ecoreEnumLiteral="SolverLanguage.ecore#//UnaryOp/CURRENT"/>
34 </genEnums> 33 </genEnums>
35 <genEnums typeSafeEnumCompatible="false" ecoreEnum="SolverLanguage.ecore#//AggregationOp">
36 <genEnumLiterals ecoreEnumLiteral="SolverLanguage.ecore#//AggregationOp/ONLY"/>
37 <genEnumLiterals ecoreEnumLiteral="SolverLanguage.ecore#//AggregationOp/SUM"/>
38 <genEnumLiterals ecoreEnumLiteral="SolverLanguage.ecore#//AggregationOp/PROD"/>
39 <genEnumLiterals ecoreEnumLiteral="SolverLanguage.ecore#//AggregationOp/AVG"/>
40 <genEnumLiterals ecoreEnumLiteral="SolverLanguage.ecore#//AggregationOp/MIN"/>
41 <genEnumLiterals ecoreEnumLiteral="SolverLanguage.ecore#//AggregationOp/MAX"/>
42 </genEnums>
43 <genEnums typeSafeEnumCompatible="false" ecoreEnum="SolverLanguage.ecore#//LogicValue"> 34 <genEnums typeSafeEnumCompatible="false" ecoreEnum="SolverLanguage.ecore#//LogicValue">
44 <genEnumLiterals ecoreEnumLiteral="SolverLanguage.ecore#//LogicValue/TRUE"/> 35 <genEnumLiterals ecoreEnumLiteral="SolverLanguage.ecore#//LogicValue/TRUE"/>
45 <genEnumLiterals ecoreEnumLiteral="SolverLanguage.ecore#//LogicValue/FALSE"/> 36 <genEnumLiterals ecoreEnumLiteral="SolverLanguage.ecore#//LogicValue/FALSE"/>
@@ -50,6 +41,11 @@
50 <genEnumLiterals ecoreEnumLiteral="SolverLanguage.ecore#//ObjectiveKind/MINIMIZE"/> 41 <genEnumLiterals ecoreEnumLiteral="SolverLanguage.ecore#//ObjectiveKind/MINIMIZE"/>
51 <genEnumLiterals ecoreEnumLiteral="SolverLanguage.ecore#//ObjectiveKind/MAXIMIZE"/> 42 <genEnumLiterals ecoreEnumLiteral="SolverLanguage.ecore#//ObjectiveKind/MAXIMIZE"/>
52 </genEnums> 43 </genEnums>
44 <genEnums typeSafeEnumCompatible="false" ecoreEnum="SolverLanguage.ecore#//Quantifier">
45 <genEnumLiterals ecoreEnumLiteral="SolverLanguage.ecore#//Quantifier/EXISTS"/>
46 <genEnumLiterals ecoreEnumLiteral="SolverLanguage.ecore#//Quantifier/FORALL"/>
47 <genEnumLiterals ecoreEnumLiteral="SolverLanguage.ecore#//Quantifier/COUNT"/>
48 </genEnums>
53 <genClasses ecoreClass="SolverLanguage.ecore#//Problem"> 49 <genClasses ecoreClass="SolverLanguage.ecore#//Problem">
54 <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference SolverLanguage.ecore#//Problem/statements"/> 50 <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference SolverLanguage.ecore#//Problem/statements"/>
55 </genClasses> 51 </genClasses>
@@ -68,33 +64,61 @@
68 <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference SolverLanguage.ecore#//DefaultDefinition/head"/> 64 <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference SolverLanguage.ecore#//DefaultDefinition/head"/>
69 <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference SolverLanguage.ecore#//DefaultDefinition/range"/> 65 <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference SolverLanguage.ecore#//DefaultDefinition/range"/>
70 </genClasses> 66 </genClasses>
71 <genClasses ecoreClass="SolverLanguage.ecore#//ExternPredicateDefinition">
72 <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference SolverLanguage.ecore#//ExternPredicateDefinition/head"/>
73 </genClasses>
74 <genClasses ecoreClass="SolverLanguage.ecore#//MetricDefinition"> 67 <genClasses ecoreClass="SolverLanguage.ecore#//MetricDefinition">
75 <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference SolverLanguage.ecore#//MetricDefinition/head"/> 68 <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference SolverLanguage.ecore#//MetricDefinition/head"/>
76 <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference SolverLanguage.ecore#//MetricDefinition/body"/> 69 <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference SolverLanguage.ecore#//MetricDefinition/body"/>
77 <genFeatures createChild="false" ecoreFeature="ecore:EAttribute SolverLanguage.ecore#//MetricDefinition/type"/> 70 <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference SolverLanguage.ecore#//MetricDefinition/type"/>
71 </genClasses>
72 <genClasses ecoreClass="SolverLanguage.ecore#//ExternPredicateDefinition">
73 <genFeatures createChild="false" ecoreFeature="ecore:EAttribute SolverLanguage.ecore#//ExternPredicateDefinition/name"/>
74 <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference SolverLanguage.ecore#//ExternPredicateDefinition/argumentList"/>
78 </genClasses> 75 </genClasses>
79 <genClasses ecoreClass="SolverLanguage.ecore#//ExternMetricDefinition"> 76 <genClasses ecoreClass="SolverLanguage.ecore#//ExternMetricDefinition">
80 <genFeatures createChild="false" ecoreFeature="ecore:EAttribute SolverLanguage.ecore#//ExternMetricDefinition/type"/> 77 <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference SolverLanguage.ecore#//ExternMetricDefinition/type"/>
81 <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference SolverLanguage.ecore#//ExternMetricDefinition/head"/> 78 <genFeatures createChild="false" ecoreFeature="ecore:EAttribute SolverLanguage.ecore#//ExternMetricDefinition/name"/>
79 <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference SolverLanguage.ecore#//ExternMetricDefinition/argumentList"/>
80 </genClasses>
81 <genClasses ecoreClass="SolverLanguage.ecore#//ExternAggregatorDefinition">
82 <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference SolverLanguage.ecore#//ExternAggregatorDefinition/type"/>
83 <genFeatures createChild="false" ecoreFeature="ecore:EAttribute SolverLanguage.ecore#//ExternAggregatorDefinition/name"/>
84 <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference SolverLanguage.ecore#//ExternAggregatorDefinition/inputType"/>
85 </genClasses>
86 <genClasses ecoreClass="SolverLanguage.ecore#//ExternDatatypeDefinition">
87 <genFeatures createChild="false" ecoreFeature="ecore:EAttribute SolverLanguage.ecore#//ExternDatatypeDefinition/name"/>
88 <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference SolverLanguage.ecore#//ExternDatatypeDefinition/supertypes"/>
89 </genClasses>
90 <genClasses ecoreClass="SolverLanguage.ecore#//NamedElement">
91 <genFeatures createChild="false" ecoreFeature="ecore:EAttribute SolverLanguage.ecore#//NamedElement/name"/>
82 </genClasses> 92 </genClasses>
83 <genClasses ecoreClass="SolverLanguage.ecore#//Expression"/> 93 <genClasses ecoreClass="SolverLanguage.ecore#//Expression"/>
84 <genClasses ecoreClass="SolverLanguage.ecore#//IfElse"> 94 <genClasses ecoreClass="SolverLanguage.ecore#//IfElse">
85 <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference SolverLanguage.ecore#//IfElse/condition"/>
86 <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference SolverLanguage.ecore#//IfElse/then"/> 95 <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference SolverLanguage.ecore#//IfElse/then"/>
87 <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference SolverLanguage.ecore#//IfElse/else"/> 96 <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference SolverLanguage.ecore#//IfElse/else"/>
97 <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference SolverLanguage.ecore#//IfElse/condition"/>
98 </genClasses>
99 <genClasses ecoreClass="SolverLanguage.ecore#//Let">
100 <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference SolverLanguage.ecore#//Let/bindings"/>
101 <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference SolverLanguage.ecore#//Let/body"/>
102 </genClasses>
103 <genClasses ecoreClass="SolverLanguage.ecore#//LetBinding">
104 <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference SolverLanguage.ecore#//LetBinding/variable"/>
105 <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference SolverLanguage.ecore#//LetBinding/value"/>
88 </genClasses> 106 </genClasses>
89 <genClasses ecoreClass="SolverLanguage.ecore#//Case"> 107 <genClasses ecoreClass="SolverLanguage.ecore#//Case">
90 <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference SolverLanguage.ecore#//Case/condition"/>
91 <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference SolverLanguage.ecore#//Case/body"/> 108 <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference SolverLanguage.ecore#//Case/body"/>
109 <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference SolverLanguage.ecore#//Case/condition"/>
110 </genClasses>
111 <genClasses ecoreClass="SolverLanguage.ecore#//LocalVariables">
112 <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference SolverLanguage.ecore#//LocalVariables/variables"/>
92 </genClasses> 113 </genClasses>
93 <genClasses ecoreClass="SolverLanguage.ecore#//Count"> 114 <genClasses ecoreClass="SolverLanguage.ecore#//QuantifiedExpression">
94 <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference SolverLanguage.ecore#//Count/body"/> 115 <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference SolverLanguage.ecore#//QuantifiedExpression/localVariables"/>
116 <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference SolverLanguage.ecore#//QuantifiedExpression/body"/>
117 <genFeatures createChild="false" ecoreFeature="ecore:EAttribute SolverLanguage.ecore#//QuantifiedExpression/quantifier"/>
95 </genClasses> 118 </genClasses>
96 <genClasses ecoreClass="SolverLanguage.ecore#//Aggregation"> 119 <genClasses ecoreClass="SolverLanguage.ecore#//Aggregation">
97 <genFeatures createChild="false" ecoreFeature="ecore:EAttribute SolverLanguage.ecore#//Aggregation/op"/> 120 <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference SolverLanguage.ecore#//Aggregation/op"/>
121 <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference SolverLanguage.ecore#//Aggregation/localVariables"/>
98 <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference SolverLanguage.ecore#//Aggregation/body"/> 122 <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference SolverLanguage.ecore#//Aggregation/body"/>
99 <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference SolverLanguage.ecore#//Aggregation/condition"/> 123 <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference SolverLanguage.ecore#//Aggregation/condition"/>
100 </genClasses> 124 </genClasses>
@@ -177,12 +201,12 @@
177 <genFeatures createChild="false" ecoreFeature="ecore:EAttribute SolverLanguage.ecore#//ObjectiveDefinition/kind"/> 201 <genFeatures createChild="false" ecoreFeature="ecore:EAttribute SolverLanguage.ecore#//ObjectiveDefinition/kind"/>
178 <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference SolverLanguage.ecore#//ObjectiveDefinition/objective"/> 202 <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference SolverLanguage.ecore#//ObjectiveDefinition/objective"/>
179 </genClasses> 203 </genClasses>
180 <genClasses ecoreClass="SolverLanguage.ecore#//NamedElement"> 204 <genClasses ecoreClass="SolverLanguage.ecore#//Interpretation">
181 <genFeatures createChild="false" ecoreFeature="ecore:EAttribute SolverLanguage.ecore#//NamedElement/name"/> 205 <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference SolverLanguage.ecore#//Interpretation/body"/>
206 <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference SolverLanguage.ecore#//Interpretation/range"/>
182 </genClasses> 207 </genClasses>
183 <genClasses ecoreClass="SolverLanguage.ecore#//Assertion"> 208 <genClasses ecoreClass="SolverLanguage.ecore#//Variable">
184 <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference SolverLanguage.ecore#//Assertion/body"/> 209 <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference SolverLanguage.ecore#//Variable/type"/>
185 <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference SolverLanguage.ecore#//Assertion/range"/>
186 </genClasses> 210 </genClasses>
187 <genClasses ecoreClass="SolverLanguage.ecore#//Disjunction"> 211 <genClasses ecoreClass="SolverLanguage.ecore#//Disjunction">
188 <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference SolverLanguage.ecore#//Disjunction/children"/> 212 <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference SolverLanguage.ecore#//Disjunction/children"/>
@@ -203,9 +227,23 @@
203 <genFeatures createChild="false" ecoreFeature="ecore:EAttribute SolverLanguage.ecore#//BinaryExpression/op"/> 227 <genFeatures createChild="false" ecoreFeature="ecore:EAttribute SolverLanguage.ecore#//BinaryExpression/op"/>
204 <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference SolverLanguage.ecore#//BinaryExpression/right"/> 228 <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference SolverLanguage.ecore#//BinaryExpression/right"/>
205 </genClasses> 229 </genClasses>
230 <genClasses ecoreClass="SolverLanguage.ecore#//CastExpression">
231 <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference SolverLanguage.ecore#//CastExpression/body"/>
232 <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference SolverLanguage.ecore#//CastExpression/type"/>
233 </genClasses>
206 <genClasses ecoreClass="SolverLanguage.ecore#//UnaryExpression"> 234 <genClasses ecoreClass="SolverLanguage.ecore#//UnaryExpression">
207 <genFeatures createChild="false" ecoreFeature="ecore:EAttribute SolverLanguage.ecore#//UnaryExpression/op"/> 235 <genFeatures createChild="false" ecoreFeature="ecore:EAttribute SolverLanguage.ecore#//UnaryExpression/op"/>
208 <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference SolverLanguage.ecore#//UnaryExpression/body"/> 236 <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference SolverLanguage.ecore#//UnaryExpression/body"/>
209 </genClasses> 237 </genClasses>
238 <genClasses ecoreClass="SolverLanguage.ecore#//Node">
239 <genFeatures createChild="false" ecoreFeature="ecore:EAttribute SolverLanguage.ecore#//Node/withId"/>
240 </genClasses>
241 <genClasses image="false" ecoreClass="SolverLanguage.ecore#//Functor">
242 <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference SolverLanguage.ecore#//Functor/parameters"/>
243 </genClasses>
244 <genClasses ecoreClass="SolverLanguage.ecore#//Predicate"/>
245 <genClasses ecoreClass="SolverLanguage.ecore#//Metric">
246 <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference SolverLanguage.ecore#//Metric/returnType"/>
247 </genClasses>
210 </genPackages> 248 </genPackages>
211</genmodel:GenModel> 249</genmodel:GenModel>