diff options
Diffstat (limited to 'subprojects/language-model/src/main')
-rw-r--r-- | subprojects/language-model/src/main/resources/model/problem.ecore | 139 | ||||
-rw-r--r-- | subprojects/language-model/src/main/resources/model/problem.genmodel | 102 |
2 files changed, 168 insertions, 73 deletions
diff --git a/subprojects/language-model/src/main/resources/model/problem.ecore b/subprojects/language-model/src/main/resources/model/problem.ecore index 4ef023c1..3214da65 100644 --- a/subprojects/language-model/src/main/resources/model/problem.ecore +++ b/subprojects/language-model/src/main/resources/model/problem.ecore | |||
@@ -7,63 +7,54 @@ | |||
7 | <eStructuralFeatures xsi:type="ecore:EReference" name="statements" upperBound="-1" | 7 | <eStructuralFeatures xsi:type="ecore:EReference" name="statements" upperBound="-1" |
8 | eType="#//Statement" containment="true"/> | 8 | eType="#//Statement" containment="true"/> |
9 | </eClassifiers> | 9 | </eClassifiers> |
10 | <eClassifiers xsi:type="ecore:EClass" name="Relation" abstract="true" eSuperTypes="#//NamedElement"/> | 10 | <eClassifiers xsi:type="ecore:EClass" name="ClassDeclaration" eSuperTypes="#//Statement #//Relation"> |
11 | <eClassifiers xsi:type="ecore:EClass" name="ClassDeclaration" eSuperTypes="#//Relation #//Statement"> | ||
12 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="abstract" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/> | 11 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="abstract" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/> |
13 | <eStructuralFeatures xsi:type="ecore:EReference" name="superTypes" upperBound="-1" | ||
14 | eType="#//Relation"/> | ||
15 | <eStructuralFeatures xsi:type="ecore:EReference" name="referenceDeclarations" | 12 | <eStructuralFeatures xsi:type="ecore:EReference" name="referenceDeclarations" |
16 | upperBound="-1" eType="#//ReferenceDeclaration" containment="true"/> | 13 | upperBound="-1" eType="#//ReferenceDeclaration" containment="true"/> |
17 | <eStructuralFeatures xsi:type="ecore:EReference" name="newNode" eType="#//Node" | 14 | <eStructuralFeatures xsi:type="ecore:EReference" name="newNode" eType="#//Node" |
18 | transient="true" containment="true"/> | 15 | transient="true" containment="true"/> |
16 | <eStructuralFeatures xsi:type="ecore:EReference" name="superTypes" upperBound="-1" | ||
17 | eType="#//Relation"/> | ||
19 | </eClassifiers> | 18 | </eClassifiers> |
20 | <eClassifiers xsi:type="ecore:EClass" name="ReferenceDeclaration" eSuperTypes="#//Relation"> | 19 | <eClassifiers xsi:type="ecore:EClass" name="ReferenceDeclaration" eSuperTypes="#//Relation"> |
21 | <eStructuralFeatures xsi:type="ecore:EReference" name="referenceType" eType="#//Relation"/> | ||
22 | <eStructuralFeatures xsi:type="ecore:EReference" name="opposite" eType="#//ReferenceDeclaration"/> | 20 | <eStructuralFeatures xsi:type="ecore:EReference" name="opposite" eType="#//ReferenceDeclaration"/> |
23 | <eStructuralFeatures xsi:type="ecore:EReference" name="multiplicity" eType="#//Multiplicity" | 21 | <eStructuralFeatures xsi:type="ecore:EReference" name="multiplicity" eType="#//Multiplicity" |
24 | containment="true"/> | 22 | containment="true"/> |
25 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="kind" eType="#//ReferenceKind"/> | 23 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="kind" eType="#//ReferenceKind"/> |
24 | <eStructuralFeatures xsi:type="ecore:EReference" name="referenceType" eType="#//Relation"/> | ||
26 | </eClassifiers> | 25 | </eClassifiers> |
27 | <eClassifiers xsi:type="ecore:EClass" name="NamedElement" abstract="true"> | 26 | <eClassifiers xsi:type="ecore:EClass" name="NamedElement" abstract="true"> |
28 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/> | 27 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/> |
29 | </eClassifiers> | 28 | </eClassifiers> |
30 | <eClassifiers xsi:type="ecore:EClass" name="PredicateDefinition" eSuperTypes="#//Relation #//ParametricDefinition"> | 29 | <eClassifiers xsi:type="ecore:EClass" name="PredicateDefinition" eSuperTypes="#//ParametricDefinition #//Relation"> |
31 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="kind" eType="#//PredicateKind"/> | 30 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="kind" eType="#//PredicateKind"/> |
31 | <eStructuralFeatures xsi:type="ecore:EReference" name="bodies" upperBound="-1" | ||
32 | eType="#//Conjunction" containment="true"/> | ||
32 | </eClassifiers> | 33 | </eClassifiers> |
33 | <eClassifiers xsi:type="ecore:EClass" name="Parameter" eSuperTypes="#//Variable"> | 34 | <eClassifiers xsi:type="ecore:EClass" name="Parameter" eSuperTypes="#//Variable"> |
34 | <eStructuralFeatures xsi:type="ecore:EReference" name="parameterType" eType="#//Relation"/> | ||
35 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="modality" eType="#//Modality"/> | 35 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="modality" eType="#//Modality"/> |
36 | <eStructuralFeatures xsi:type="ecore:EReference" name="parameterType" eType="#//Relation"/> | ||
36 | </eClassifiers> | 37 | </eClassifiers> |
37 | <eClassifiers xsi:type="ecore:EClass" name="Variable" abstract="true" eSuperTypes="#//VariableOrNode"/> | 38 | <eClassifiers xsi:type="ecore:EClass" name="Variable" abstract="true" eSuperTypes="#//VariableOrNode"/> |
38 | <eClassifiers xsi:type="ecore:EClass" name="Conjunction" eSuperTypes="#//ExistentialQuantifier"> | 39 | <eClassifiers xsi:type="ecore:EClass" name="Atom" eSuperTypes="#//Expr"> |
39 | <eStructuralFeatures xsi:type="ecore:EReference" name="literals" upperBound="-1" | ||
40 | eType="#//Literal" containment="true"/> | ||
41 | </eClassifiers> | ||
42 | <eClassifiers xsi:type="ecore:EClass" name="Literal" abstract="true"> | ||
43 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="modality" eType="#//Modality"/> | ||
44 | </eClassifiers> | ||
45 | <eClassifiers xsi:type="ecore:EClass" name="Atom" eSuperTypes="#//Literal"> | ||
46 | <eStructuralFeatures xsi:type="ecore:EReference" name="relation" eType="#//Relation"/> | ||
47 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="transitiveClosure" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/> | 40 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="transitiveClosure" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/> |
48 | <eStructuralFeatures xsi:type="ecore:EReference" name="arguments" upperBound="-1" | 41 | <eStructuralFeatures xsi:type="ecore:EReference" name="arguments" upperBound="-1" |
49 | eType="#//Argument" containment="true"/> | 42 | eType="#//Expr" containment="true"/> |
43 | <eStructuralFeatures xsi:type="ecore:EReference" name="relation" eType="#//Relation"/> | ||
50 | </eClassifiers> | 44 | </eClassifiers> |
51 | <eClassifiers xsi:type="ecore:EClass" name="ImplicitVariable" eSuperTypes="#//Variable"/> | 45 | <eClassifiers xsi:type="ecore:EClass" name="ImplicitVariable" eSuperTypes="#//Variable"/> |
52 | <eClassifiers xsi:type="ecore:EClass" name="CompoundLiteral" abstract="true" eSuperTypes="#//ExistentialQuantifier #//Literal"> | ||
53 | <eStructuralFeatures xsi:type="ecore:EReference" name="atom" eType="#//Atom" containment="true"/> | ||
54 | </eClassifiers> | ||
55 | <eClassifiers xsi:type="ecore:EClass" name="ExistentialQuantifier" abstract="true" | 46 | <eClassifiers xsi:type="ecore:EClass" name="ExistentialQuantifier" abstract="true" |
56 | interface="true"> | 47 | interface="true"> |
57 | <eStructuralFeatures xsi:type="ecore:EReference" name="implicitVariables" upperBound="-1" | 48 | <eStructuralFeatures xsi:type="ecore:EReference" name="implicitVariables" upperBound="-1" |
58 | eType="#//ImplicitVariable" transient="true" containment="true"/> | 49 | eType="#//ImplicitVariable" transient="true" containment="true"/> |
59 | </eClassifiers> | 50 | </eClassifiers> |
60 | <eClassifiers xsi:type="ecore:EClass" name="Assertion" eSuperTypes="#//Statement"> | 51 | <eClassifiers xsi:type="ecore:EClass" name="Assertion" eSuperTypes="#//Statement"> |
61 | <eStructuralFeatures xsi:type="ecore:EReference" name="relation" eType="#//Relation"/> | ||
62 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="value" eType="#//LogicValue"/> | 52 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="value" eType="#//LogicValue"/> |
63 | <eStructuralFeatures xsi:type="ecore:EReference" name="arguments" upperBound="-1" | 53 | <eStructuralFeatures xsi:type="ecore:EReference" name="arguments" upperBound="-1" |
64 | eType="#//AssertionArgument" containment="true"/> | 54 | eType="#//AssertionArgument" containment="true"/> |
65 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="default" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean" | 55 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="default" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean" |
66 | defaultValueLiteral="false"/> | 56 | defaultValueLiteral="false"/> |
57 | <eStructuralFeatures xsi:type="ecore:EReference" name="relation" eType="#//Relation"/> | ||
67 | </eClassifiers> | 58 | </eClassifiers> |
68 | <eClassifiers xsi:type="ecore:EClass" name="Node" eSuperTypes="#//VariableOrNode"/> | 59 | <eClassifiers xsi:type="ecore:EClass" name="Node" eSuperTypes="#//VariableOrNode"/> |
69 | <eClassifiers xsi:type="ecore:EEnum" name="LogicValue"> | 60 | <eClassifiers xsi:type="ecore:EEnum" name="LogicValue"> |
@@ -78,10 +69,10 @@ | |||
78 | </eClassifiers> | 69 | </eClassifiers> |
79 | <eClassifiers xsi:type="ecore:EClass" name="Statement" abstract="true" interface="true"/> | 70 | <eClassifiers xsi:type="ecore:EClass" name="Statement" abstract="true" interface="true"/> |
80 | <eClassifiers xsi:type="ecore:EClass" name="TypeScope"> | 71 | <eClassifiers xsi:type="ecore:EClass" name="TypeScope"> |
81 | <eStructuralFeatures xsi:type="ecore:EReference" name="targetType" eType="#//Relation"/> | ||
82 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="increment" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/> | 72 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="increment" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/> |
83 | <eStructuralFeatures xsi:type="ecore:EReference" name="multiplicity" eType="#//Multiplicity" | 73 | <eStructuralFeatures xsi:type="ecore:EReference" name="multiplicity" eType="#//Multiplicity" |
84 | containment="true"/> | 74 | containment="true"/> |
75 | <eStructuralFeatures xsi:type="ecore:EReference" name="targetType" eType="#//Relation"/> | ||
85 | </eClassifiers> | 76 | </eClassifiers> |
86 | <eClassifiers xsi:type="ecore:EClass" name="Multiplicity" abstract="true"/> | 77 | <eClassifiers xsi:type="ecore:EClass" name="Multiplicity" abstract="true"/> |
87 | <eClassifiers xsi:type="ecore:EClass" name="RangeMultiplicity" eSuperTypes="#//Multiplicity"> | 78 | <eClassifiers xsi:type="ecore:EClass" name="RangeMultiplicity" eSuperTypes="#//Multiplicity"> |
@@ -95,12 +86,7 @@ | |||
95 | defaultValueLiteral="1"/> | 86 | defaultValueLiteral="1"/> |
96 | </eClassifiers> | 87 | </eClassifiers> |
97 | <eClassifiers xsi:type="ecore:EClass" name="UnboundedMultiplicity" eSuperTypes="#//Multiplicity"/> | 88 | <eClassifiers xsi:type="ecore:EClass" name="UnboundedMultiplicity" eSuperTypes="#//Multiplicity"/> |
98 | <eClassifiers xsi:type="ecore:EClass" name="VariableOrNodeArgument" eSuperTypes="#//Argument"> | 89 | <eClassifiers xsi:type="ecore:EClass" name="EnumDeclaration" eSuperTypes="#//Statement #//Relation"> |
99 | <eStructuralFeatures xsi:type="ecore:EReference" name="variableOrNode" eType="#//VariableOrNode"/> | ||
100 | <eStructuralFeatures xsi:type="ecore:EReference" name="singletonVariable" eType="#//ImplicitVariable" | ||
101 | transient="true" containment="true"/> | ||
102 | </eClassifiers> | ||
103 | <eClassifiers xsi:type="ecore:EClass" name="EnumDeclaration" eSuperTypes="#//Relation #//Statement"> | ||
104 | <eStructuralFeatures xsi:type="ecore:EReference" name="literals" upperBound="-1" | 90 | <eStructuralFeatures xsi:type="ecore:EReference" name="literals" upperBound="-1" |
105 | eType="#//Node" containment="true"/> | 91 | eType="#//Node" containment="true"/> |
106 | </eClassifiers> | 92 | </eClassifiers> |
@@ -117,11 +103,6 @@ | |||
117 | <eClassifiers xsi:type="ecore:EClass" name="StringConstant" eSuperTypes="#//Constant"> | 103 | <eClassifiers xsi:type="ecore:EClass" name="StringConstant" eSuperTypes="#//Constant"> |
118 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="stringValue" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/> | 104 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="stringValue" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/> |
119 | </eClassifiers> | 105 | </eClassifiers> |
120 | <eClassifiers xsi:type="ecore:EClass" name="ConstantArgument" eSuperTypes="#//Argument"> | ||
121 | <eStructuralFeatures xsi:type="ecore:EReference" name="constant" eType="#//Constant" | ||
122 | containment="true"/> | ||
123 | </eClassifiers> | ||
124 | <eClassifiers xsi:type="ecore:EClass" name="Argument" abstract="true"/> | ||
125 | <eClassifiers xsi:type="ecore:EClass" name="NodeAssertionArgument" eSuperTypes="#//AssertionArgument"> | 106 | <eClassifiers xsi:type="ecore:EClass" name="NodeAssertionArgument" eSuperTypes="#//AssertionArgument"> |
126 | <eStructuralFeatures xsi:type="ecore:EReference" name="node" eType="#//Node"/> | 107 | <eStructuralFeatures xsi:type="ecore:EReference" name="node" eType="#//Node"/> |
127 | </eClassifiers> | 108 | </eClassifiers> |
@@ -130,6 +111,7 @@ | |||
130 | <eStructuralFeatures xsi:type="ecore:EReference" name="constant" eType="#//Constant" | 111 | <eStructuralFeatures xsi:type="ecore:EReference" name="constant" eType="#//Constant" |
131 | containment="true"/> | 112 | containment="true"/> |
132 | <eStructuralFeatures xsi:type="ecore:EReference" name="node" eType="#//Node" containment="true"/> | 113 | <eStructuralFeatures xsi:type="ecore:EReference" name="node" eType="#//Node" containment="true"/> |
114 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="negative" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/> | ||
133 | </eClassifiers> | 115 | </eClassifiers> |
134 | <eClassifiers xsi:type="ecore:EClass" name="NodeValueAssertion" eSuperTypes="#//Statement"> | 116 | <eClassifiers xsi:type="ecore:EClass" name="NodeValueAssertion" eSuperTypes="#//Statement"> |
135 | <eStructuralFeatures xsi:type="ecore:EReference" name="node" eType="#//Node"/> | 117 | <eStructuralFeatures xsi:type="ecore:EReference" name="node" eType="#//Node"/> |
@@ -143,14 +125,14 @@ | |||
143 | <eClassifiers xsi:type="ecore:EClass" name="WildcardAssertionArgument" eSuperTypes="#//AssertionArgument"/> | 125 | <eClassifiers xsi:type="ecore:EClass" name="WildcardAssertionArgument" eSuperTypes="#//AssertionArgument"/> |
144 | <eClassifiers xsi:type="ecore:EClass" name="ParametricDefinition" abstract="true" | 126 | <eClassifiers xsi:type="ecore:EClass" name="ParametricDefinition" abstract="true" |
145 | interface="true" eSuperTypes="#//Statement"> | 127 | interface="true" eSuperTypes="#//Statement"> |
146 | <eStructuralFeatures xsi:type="ecore:EReference" name="bodies" upperBound="-1" | ||
147 | eType="#//Conjunction" containment="true"/> | ||
148 | <eStructuralFeatures xsi:type="ecore:EReference" name="parameters" upperBound="-1" | 128 | <eStructuralFeatures xsi:type="ecore:EReference" name="parameters" upperBound="-1" |
149 | eType="#//Parameter" containment="true"/> | 129 | eType="#//Parameter" containment="true"/> |
150 | </eClassifiers> | 130 | </eClassifiers> |
151 | <eClassifiers xsi:type="ecore:EClass" name="RuleDefinition" eSuperTypes="#//ParametricDefinition #//NamedElement"> | 131 | <eClassifiers xsi:type="ecore:EClass" name="RuleDefinition" eSuperTypes="#//ParametricDefinition #//NamedElement"> |
152 | <eStructuralFeatures xsi:type="ecore:EReference" name="consequents" upperBound="-1" | 132 | <eStructuralFeatures xsi:type="ecore:EReference" name="consequents" upperBound="-1" |
153 | eType="#//Consequent" containment="true"/> | 133 | eType="#//Consequent" containment="true"/> |
134 | <eStructuralFeatures xsi:type="ecore:EReference" name="preconditions" upperBound="-1" | ||
135 | eType="#//Conjunction" containment="true"/> | ||
154 | </eClassifiers> | 136 | </eClassifiers> |
155 | <eClassifiers xsi:type="ecore:EClass" name="Consequent"> | 137 | <eClassifiers xsi:type="ecore:EClass" name="Consequent"> |
156 | <eStructuralFeatures xsi:type="ecore:EReference" name="actions" upperBound="-1" | 138 | <eStructuralFeatures xsi:type="ecore:EReference" name="actions" upperBound="-1" |
@@ -174,17 +156,11 @@ | |||
174 | </eClassifiers> | 156 | </eClassifiers> |
175 | <eClassifiers xsi:type="ecore:EClass" name="NewVariable" eSuperTypes="#//Variable"/> | 157 | <eClassifiers xsi:type="ecore:EClass" name="NewVariable" eSuperTypes="#//Variable"/> |
176 | <eClassifiers xsi:type="ecore:EEnum" name="Modality"> | 158 | <eClassifiers xsi:type="ecore:EEnum" name="Modality"> |
177 | <eLiterals name="DEFAULT"/> | 159 | <eLiterals name="DEFAULT" value="1"/> |
178 | <eLiterals name="MAY" value="1"/> | 160 | <eLiterals name="MAY" value="2"/> |
179 | <eLiterals name="MUST" value="2"/> | 161 | <eLiterals name="MUST" value="3"/> |
180 | <eLiterals name="CURRENT" value="3"/> | 162 | <eLiterals name="CURRENT" value="3"/> |
181 | </eClassifiers> | 163 | </eClassifiers> |
182 | <eClassifiers xsi:type="ecore:EClass" name="NegativeLiteral" eSuperTypes="#//CompoundLiteral"/> | ||
183 | <eClassifiers xsi:type="ecore:EClass" name="CountLiteral" eSuperTypes="#//CompoundLiteral"> | ||
184 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="op" eType="#//ComparisonOp"/> | ||
185 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="threshold" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt" | ||
186 | defaultValueLiteral="0"/> | ||
187 | </eClassifiers> | ||
188 | <eClassifiers xsi:type="ecore:EEnum" name="ComparisonOp"> | 164 | <eClassifiers xsi:type="ecore:EEnum" name="ComparisonOp"> |
189 | <eLiterals name="LESS"/> | 165 | <eLiterals name="LESS"/> |
190 | <eLiterals name="LESS_EQ" value="1"/> | 166 | <eLiterals name="LESS_EQ" value="1"/> |
@@ -205,4 +181,79 @@ | |||
205 | <eLiterals name="CONTAINED" value="2"/> | 181 | <eLiterals name="CONTAINED" value="2"/> |
206 | <eLiterals name="CONTAINMENT" value="3"/> | 182 | <eLiterals name="CONTAINMENT" value="3"/> |
207 | </eClassifiers> | 183 | </eClassifiers> |
184 | <eClassifiers xsi:type="ecore:EClass" name="Expr" abstract="true"/> | ||
185 | <eClassifiers xsi:type="ecore:EClass" name="VariableOrNodeExpr" eSuperTypes="#//Expr"> | ||
186 | <eStructuralFeatures xsi:type="ecore:EReference" name="variableOrNode" eType="#//VariableOrNode"/> | ||
187 | <eStructuralFeatures xsi:type="ecore:EReference" name="singletonVariable" eType="#//ImplicitVariable" | ||
188 | containment="true"/> | ||
189 | </eClassifiers> | ||
190 | <eClassifiers xsi:type="ecore:EClass" name="BinaryExpr" abstract="true" eSuperTypes="#//Expr"> | ||
191 | <eStructuralFeatures xsi:type="ecore:EReference" name="left" eType="#//Expr" containment="true"/> | ||
192 | <eStructuralFeatures xsi:type="ecore:EReference" name="right" eType="#//Expr" | ||
193 | containment="true"/> | ||
194 | </eClassifiers> | ||
195 | <eClassifiers xsi:type="ecore:EClass" name="UnaryExpr" abstract="true" eSuperTypes="#//Expr"> | ||
196 | <eStructuralFeatures xsi:type="ecore:EReference" name="body" eType="#//Expr" containment="true"/> | ||
197 | </eClassifiers> | ||
198 | <eClassifiers xsi:type="ecore:EEnum" name="UnaryOp"> | ||
199 | <eLiterals name="PLUS"/> | ||
200 | <eLiterals name="MINUS" value="1"/> | ||
201 | </eClassifiers> | ||
202 | <eClassifiers xsi:type="ecore:EEnum" name="BinaryOp"> | ||
203 | <eLiterals name="ADD"/> | ||
204 | <eLiterals name="SUB" value="1"/> | ||
205 | <eLiterals name="MUL" value="2"/> | ||
206 | <eLiterals name="DIV" value="3"/> | ||
207 | <eLiterals name="POW" value="4"/> | ||
208 | </eClassifiers> | ||
209 | <eClassifiers xsi:type="ecore:EClass" name="ArithmeticUnaryExpr" eSuperTypes="#//UnaryExpr"> | ||
210 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="op" eType="#//UnaryOp"/> | ||
211 | </eClassifiers> | ||
212 | <eClassifiers xsi:type="ecore:EClass" name="AggregationExpr" eSuperTypes="#//Expr #//ExistentialQuantifier"> | ||
213 | <eStructuralFeatures xsi:type="ecore:EReference" name="value" eType="#//Expr" | ||
214 | containment="true"/> | ||
215 | <eStructuralFeatures xsi:type="ecore:EReference" name="condition" eType="#//Expr" | ||
216 | containment="true"/> | ||
217 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="op" eType="#//AggregationOp"/> | ||
218 | </eClassifiers> | ||
219 | <eClassifiers xsi:type="ecore:EEnum" name="AggregationOp"> | ||
220 | <eLiterals name="SUM"/> | ||
221 | <eLiterals name="PROD" value="1"/> | ||
222 | <eLiterals name="MIN" value="2"/> | ||
223 | <eLiterals name="MAX" value="3"/> | ||
224 | </eClassifiers> | ||
225 | <eClassifiers xsi:type="ecore:EClass" name="ComparisonExpr" eSuperTypes="#//BinaryExpr"> | ||
226 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="op" eType="#//ComparisonOp"/> | ||
227 | </eClassifiers> | ||
228 | <eClassifiers xsi:type="ecore:EClass" name="ConstantExpr" eSuperTypes="#//Expr"> | ||
229 | <eStructuralFeatures xsi:type="ecore:EReference" name="constant" eType="#//Constant" | ||
230 | containment="true"/> | ||
231 | </eClassifiers> | ||
232 | <eClassifiers xsi:type="ecore:EClass" name="QuantifiedUnaryExpr" abstract="true" | ||
233 | eSuperTypes="#//ExistentialQuantifier #//UnaryExpr"/> | ||
234 | <eClassifiers xsi:type="ecore:EClass" name="FunctionDefinition" eSuperTypes="#//ParametricDefinition #//Relation"> | ||
235 | <eStructuralFeatures xsi:type="ecore:EReference" name="cases" upperBound="-1" | ||
236 | eType="#//Case" containment="true"/> | ||
237 | <eStructuralFeatures xsi:type="ecore:EReference" name="functionType" eType="#//Relation"/> | ||
238 | </eClassifiers> | ||
239 | <eClassifiers xsi:type="ecore:EClass" name="Case" abstract="true"/> | ||
240 | <eClassifiers xsi:type="ecore:EClass" name="Conjunction" eSuperTypes="#//Case #//ExistentialQuantifier"> | ||
241 | <eStructuralFeatures xsi:type="ecore:EReference" name="literals" upperBound="-1" | ||
242 | eType="#//Expr" containment="true"/> | ||
243 | </eClassifiers> | ||
244 | <eClassifiers xsi:type="ecore:EClass" name="Match" eSuperTypes="#//Case"> | ||
245 | <eStructuralFeatures xsi:type="ecore:EReference" name="condition" eType="#//Conjunction" | ||
246 | containment="true"/> | ||
247 | <eStructuralFeatures xsi:type="ecore:EReference" name="value" eType="#//Expr" | ||
248 | containment="true"/> | ||
249 | </eClassifiers> | ||
250 | <eClassifiers xsi:type="ecore:EClass" name="ArithmeticBinaryExpr" eSuperTypes="#//BinaryExpr"> | ||
251 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="op" eType="#//BinaryOp"/> | ||
252 | </eClassifiers> | ||
253 | <eClassifiers xsi:type="ecore:EClass" name="NegationExpr" eSuperTypes="#//QuantifiedUnaryExpr"/> | ||
254 | <eClassifiers xsi:type="ecore:EClass" name="CountExpr" eSuperTypes="#//QuantifiedUnaryExpr"/> | ||
255 | <eClassifiers xsi:type="ecore:EClass" name="Relation" abstract="true" eSuperTypes="#//NamedElement"/> | ||
256 | <eClassifiers xsi:type="ecore:EClass" name="ModalExpr" eSuperTypes="#//UnaryExpr"> | ||
257 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="modality" eType="#//Modality"/> | ||
258 | </eClassifiers> | ||
208 | </ecore:EPackage> | 259 | </ecore:EPackage> |
diff --git a/subprojects/language-model/src/main/resources/model/problem.genmodel b/subprojects/language-model/src/main/resources/model/problem.genmodel index 9ff4989b..230f9919 100644 --- a/subprojects/language-model/src/main/resources/model/problem.genmodel +++ b/subprojects/language-model/src/main/resources/model/problem.genmodel | |||
@@ -42,57 +42,65 @@ | |||
42 | <genEnumLiterals ecoreEnumLiteral="problem.ecore#//PredicateKind/CONTAINED"/> | 42 | <genEnumLiterals ecoreEnumLiteral="problem.ecore#//PredicateKind/CONTAINED"/> |
43 | <genEnumLiterals ecoreEnumLiteral="problem.ecore#//PredicateKind/CONTAINMENT"/> | 43 | <genEnumLiterals ecoreEnumLiteral="problem.ecore#//PredicateKind/CONTAINMENT"/> |
44 | </genEnums> | 44 | </genEnums> |
45 | <genEnums typeSafeEnumCompatible="false" ecoreEnum="problem.ecore#//UnaryOp"> | ||
46 | <genEnumLiterals ecoreEnumLiteral="problem.ecore#//UnaryOp/PLUS"/> | ||
47 | <genEnumLiterals ecoreEnumLiteral="problem.ecore#//UnaryOp/MINUS"/> | ||
48 | </genEnums> | ||
49 | <genEnums typeSafeEnumCompatible="false" ecoreEnum="problem.ecore#//BinaryOp"> | ||
50 | <genEnumLiterals ecoreEnumLiteral="problem.ecore#//BinaryOp/ADD"/> | ||
51 | <genEnumLiterals ecoreEnumLiteral="problem.ecore#//BinaryOp/SUB"/> | ||
52 | <genEnumLiterals ecoreEnumLiteral="problem.ecore#//BinaryOp/MUL"/> | ||
53 | <genEnumLiterals ecoreEnumLiteral="problem.ecore#//BinaryOp/DIV"/> | ||
54 | <genEnumLiterals ecoreEnumLiteral="problem.ecore#//BinaryOp/POW"/> | ||
55 | </genEnums> | ||
56 | <genEnums typeSafeEnumCompatible="false" ecoreEnum="problem.ecore#//AggregationOp"> | ||
57 | <genEnumLiterals ecoreEnumLiteral="problem.ecore#//AggregationOp/SUM"/> | ||
58 | <genEnumLiterals ecoreEnumLiteral="problem.ecore#//AggregationOp/PROD"/> | ||
59 | <genEnumLiterals ecoreEnumLiteral="problem.ecore#//AggregationOp/MIN"/> | ||
60 | <genEnumLiterals ecoreEnumLiteral="problem.ecore#//AggregationOp/MAX"/> | ||
61 | </genEnums> | ||
45 | <genClasses ecoreClass="problem.ecore#//Problem"> | 62 | <genClasses ecoreClass="problem.ecore#//Problem"> |
46 | <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference problem.ecore#//Problem/nodes"/> | 63 | <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference problem.ecore#//Problem/nodes"/> |
47 | <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference problem.ecore#//Problem/statements"/> | 64 | <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference problem.ecore#//Problem/statements"/> |
48 | </genClasses> | 65 | </genClasses> |
49 | <genClasses ecoreClass="problem.ecore#//Relation"/> | ||
50 | <genClasses ecoreClass="problem.ecore#//ClassDeclaration"> | 66 | <genClasses ecoreClass="problem.ecore#//ClassDeclaration"> |
51 | <genFeatures createChild="false" ecoreFeature="ecore:EAttribute problem.ecore#//ClassDeclaration/abstract"/> | 67 | <genFeatures createChild="false" ecoreFeature="ecore:EAttribute problem.ecore#//ClassDeclaration/abstract"/> |
52 | <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference problem.ecore#//ClassDeclaration/superTypes"/> | ||
53 | <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference problem.ecore#//ClassDeclaration/referenceDeclarations"/> | 68 | <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference problem.ecore#//ClassDeclaration/referenceDeclarations"/> |
54 | <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference problem.ecore#//ClassDeclaration/newNode"/> | 69 | <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference problem.ecore#//ClassDeclaration/newNode"/> |
70 | <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference problem.ecore#//ClassDeclaration/superTypes"/> | ||
55 | </genClasses> | 71 | </genClasses> |
56 | <genClasses ecoreClass="problem.ecore#//ReferenceDeclaration"> | 72 | <genClasses ecoreClass="problem.ecore#//ReferenceDeclaration"> |
57 | <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference problem.ecore#//ReferenceDeclaration/referenceType"/> | ||
58 | <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference problem.ecore#//ReferenceDeclaration/opposite"/> | 73 | <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference problem.ecore#//ReferenceDeclaration/opposite"/> |
59 | <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference problem.ecore#//ReferenceDeclaration/multiplicity"/> | 74 | <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference problem.ecore#//ReferenceDeclaration/multiplicity"/> |
60 | <genFeatures createChild="false" ecoreFeature="ecore:EAttribute problem.ecore#//ReferenceDeclaration/kind"/> | 75 | <genFeatures createChild="false" ecoreFeature="ecore:EAttribute problem.ecore#//ReferenceDeclaration/kind"/> |
76 | <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference problem.ecore#//ReferenceDeclaration/referenceType"/> | ||
61 | </genClasses> | 77 | </genClasses> |
62 | <genClasses ecoreClass="problem.ecore#//NamedElement"> | 78 | <genClasses ecoreClass="problem.ecore#//NamedElement"> |
63 | <genFeatures createChild="false" ecoreFeature="ecore:EAttribute problem.ecore#//NamedElement/name"/> | 79 | <genFeatures createChild="false" ecoreFeature="ecore:EAttribute problem.ecore#//NamedElement/name"/> |
64 | </genClasses> | 80 | </genClasses> |
65 | <genClasses ecoreClass="problem.ecore#//PredicateDefinition"> | 81 | <genClasses ecoreClass="problem.ecore#//PredicateDefinition"> |
66 | <genFeatures createChild="false" ecoreFeature="ecore:EAttribute problem.ecore#//PredicateDefinition/kind"/> | 82 | <genFeatures createChild="false" ecoreFeature="ecore:EAttribute problem.ecore#//PredicateDefinition/kind"/> |
83 | <genFeatures children="true" createChild="true" propertySortChoices="true" ecoreFeature="ecore:EReference problem.ecore#//PredicateDefinition/bodies"/> | ||
67 | </genClasses> | 84 | </genClasses> |
68 | <genClasses ecoreClass="problem.ecore#//Parameter"> | 85 | <genClasses ecoreClass="problem.ecore#//Parameter"> |
69 | <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference problem.ecore#//Parameter/parameterType"/> | ||
70 | <genFeatures createChild="false" ecoreFeature="ecore:EAttribute problem.ecore#//Parameter/modality"/> | 86 | <genFeatures createChild="false" ecoreFeature="ecore:EAttribute problem.ecore#//Parameter/modality"/> |
87 | <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference problem.ecore#//Parameter/parameterType"/> | ||
71 | </genClasses> | 88 | </genClasses> |
72 | <genClasses ecoreClass="problem.ecore#//Variable"/> | 89 | <genClasses ecoreClass="problem.ecore#//Variable"/> |
73 | <genClasses ecoreClass="problem.ecore#//Conjunction"> | ||
74 | <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference problem.ecore#//Conjunction/literals"/> | ||
75 | </genClasses> | ||
76 | <genClasses ecoreClass="problem.ecore#//Literal"> | ||
77 | <genFeatures createChild="false" ecoreFeature="ecore:EAttribute problem.ecore#//Literal/modality"/> | ||
78 | </genClasses> | ||
79 | <genClasses ecoreClass="problem.ecore#//Atom"> | 90 | <genClasses ecoreClass="problem.ecore#//Atom"> |
80 | <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference problem.ecore#//Atom/relation"/> | ||
81 | <genFeatures createChild="false" ecoreFeature="ecore:EAttribute problem.ecore#//Atom/transitiveClosure"/> | 91 | <genFeatures createChild="false" ecoreFeature="ecore:EAttribute problem.ecore#//Atom/transitiveClosure"/> |
82 | <genFeatures children="true" createChild="true" propertySortChoices="true" ecoreFeature="ecore:EReference problem.ecore#//Atom/arguments"/> | 92 | <genFeatures children="true" createChild="true" propertySortChoices="true" ecoreFeature="ecore:EReference problem.ecore#//Atom/arguments"/> |
93 | <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference problem.ecore#//Atom/relation"/> | ||
83 | </genClasses> | 94 | </genClasses> |
84 | <genClasses ecoreClass="problem.ecore#//ImplicitVariable"/> | 95 | <genClasses ecoreClass="problem.ecore#//ImplicitVariable"/> |
85 | <genClasses ecoreClass="problem.ecore#//CompoundLiteral"> | ||
86 | <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference problem.ecore#//CompoundLiteral/atom"/> | ||
87 | </genClasses> | ||
88 | <genClasses ecoreClass="problem.ecore#//ExistentialQuantifier"> | 96 | <genClasses ecoreClass="problem.ecore#//ExistentialQuantifier"> |
89 | <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference problem.ecore#//ExistentialQuantifier/implicitVariables"/> | 97 | <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference problem.ecore#//ExistentialQuantifier/implicitVariables"/> |
90 | </genClasses> | 98 | </genClasses> |
91 | <genClasses ecoreClass="problem.ecore#//Assertion"> | 99 | <genClasses ecoreClass="problem.ecore#//Assertion"> |
92 | <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference problem.ecore#//Assertion/relation"/> | ||
93 | <genFeatures createChild="false" ecoreFeature="ecore:EAttribute problem.ecore#//Assertion/value"/> | 100 | <genFeatures createChild="false" ecoreFeature="ecore:EAttribute problem.ecore#//Assertion/value"/> |
94 | <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference problem.ecore#//Assertion/arguments"/> | 101 | <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference problem.ecore#//Assertion/arguments"/> |
95 | <genFeatures createChild="false" ecoreFeature="ecore:EAttribute problem.ecore#//Assertion/default"/> | 102 | <genFeatures createChild="false" ecoreFeature="ecore:EAttribute problem.ecore#//Assertion/default"/> |
103 | <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference problem.ecore#//Assertion/relation"/> | ||
96 | </genClasses> | 104 | </genClasses> |
97 | <genClasses ecoreClass="problem.ecore#//Node"/> | 105 | <genClasses ecoreClass="problem.ecore#//Node"/> |
98 | <genClasses ecoreClass="problem.ecore#//ScopeDeclaration"> | 106 | <genClasses ecoreClass="problem.ecore#//ScopeDeclaration"> |
@@ -100,9 +108,9 @@ | |||
100 | </genClasses> | 108 | </genClasses> |
101 | <genClasses ecoreClass="problem.ecore#//Statement"/> | 109 | <genClasses ecoreClass="problem.ecore#//Statement"/> |
102 | <genClasses ecoreClass="problem.ecore#//TypeScope"> | 110 | <genClasses ecoreClass="problem.ecore#//TypeScope"> |
103 | <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference problem.ecore#//TypeScope/targetType"/> | ||
104 | <genFeatures createChild="false" ecoreFeature="ecore:EAttribute problem.ecore#//TypeScope/increment"/> | 111 | <genFeatures createChild="false" ecoreFeature="ecore:EAttribute problem.ecore#//TypeScope/increment"/> |
105 | <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference problem.ecore#//TypeScope/multiplicity"/> | 112 | <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference problem.ecore#//TypeScope/multiplicity"/> |
113 | <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference problem.ecore#//TypeScope/targetType"/> | ||
106 | </genClasses> | 114 | </genClasses> |
107 | <genClasses ecoreClass="problem.ecore#//Multiplicity"/> | 115 | <genClasses ecoreClass="problem.ecore#//Multiplicity"/> |
108 | <genClasses ecoreClass="problem.ecore#//RangeMultiplicity"> | 116 | <genClasses ecoreClass="problem.ecore#//RangeMultiplicity"> |
@@ -113,10 +121,6 @@ | |||
113 | <genFeatures createChild="false" ecoreFeature="ecore:EAttribute problem.ecore#//ExactMultiplicity/exactValue"/> | 121 | <genFeatures createChild="false" ecoreFeature="ecore:EAttribute problem.ecore#//ExactMultiplicity/exactValue"/> |
114 | </genClasses> | 122 | </genClasses> |
115 | <genClasses ecoreClass="problem.ecore#//UnboundedMultiplicity"/> | 123 | <genClasses ecoreClass="problem.ecore#//UnboundedMultiplicity"/> |
116 | <genClasses ecoreClass="problem.ecore#//VariableOrNodeArgument"> | ||
117 | <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference problem.ecore#//VariableOrNodeArgument/variableOrNode"/> | ||
118 | <genFeatures children="true" createChild="true" propertySortChoices="true" ecoreFeature="ecore:EReference problem.ecore#//VariableOrNodeArgument/singletonVariable"/> | ||
119 | </genClasses> | ||
120 | <genClasses ecoreClass="problem.ecore#//EnumDeclaration"> | 124 | <genClasses ecoreClass="problem.ecore#//EnumDeclaration"> |
121 | <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference problem.ecore#//EnumDeclaration/literals"/> | 125 | <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference problem.ecore#//EnumDeclaration/literals"/> |
122 | </genClasses> | 126 | </genClasses> |
@@ -131,10 +135,6 @@ | |||
131 | <genClasses ecoreClass="problem.ecore#//StringConstant"> | 135 | <genClasses ecoreClass="problem.ecore#//StringConstant"> |
132 | <genFeatures createChild="false" ecoreFeature="ecore:EAttribute problem.ecore#//StringConstant/stringValue"/> | 136 | <genFeatures createChild="false" ecoreFeature="ecore:EAttribute problem.ecore#//StringConstant/stringValue"/> |
133 | </genClasses> | 137 | </genClasses> |
134 | <genClasses ecoreClass="problem.ecore#//ConstantArgument"> | ||
135 | <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference problem.ecore#//ConstantArgument/constant"/> | ||
136 | </genClasses> | ||
137 | <genClasses ecoreClass="problem.ecore#//Argument"/> | ||
138 | <genClasses ecoreClass="problem.ecore#//NodeAssertionArgument"> | 138 | <genClasses ecoreClass="problem.ecore#//NodeAssertionArgument"> |
139 | <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference problem.ecore#//NodeAssertionArgument/node"/> | 139 | <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference problem.ecore#//NodeAssertionArgument/node"/> |
140 | </genClasses> | 140 | </genClasses> |
@@ -142,6 +142,7 @@ | |||
142 | <genClasses ecoreClass="problem.ecore#//ConstantAssertionArgument"> | 142 | <genClasses ecoreClass="problem.ecore#//ConstantAssertionArgument"> |
143 | <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference problem.ecore#//ConstantAssertionArgument/constant"/> | 143 | <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference problem.ecore#//ConstantAssertionArgument/constant"/> |
144 | <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference problem.ecore#//ConstantAssertionArgument/node"/> | 144 | <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference problem.ecore#//ConstantAssertionArgument/node"/> |
145 | <genFeatures createChild="false" ecoreFeature="ecore:EAttribute problem.ecore#//ConstantAssertionArgument/negative"/> | ||
145 | </genClasses> | 146 | </genClasses> |
146 | <genClasses ecoreClass="problem.ecore#//NodeValueAssertion"> | 147 | <genClasses ecoreClass="problem.ecore#//NodeValueAssertion"> |
147 | <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference problem.ecore#//NodeValueAssertion/node"/> | 148 | <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference problem.ecore#//NodeValueAssertion/node"/> |
@@ -152,11 +153,11 @@ | |||
152 | </genClasses> | 153 | </genClasses> |
153 | <genClasses ecoreClass="problem.ecore#//WildcardAssertionArgument"/> | 154 | <genClasses ecoreClass="problem.ecore#//WildcardAssertionArgument"/> |
154 | <genClasses ecoreClass="problem.ecore#//ParametricDefinition"> | 155 | <genClasses ecoreClass="problem.ecore#//ParametricDefinition"> |
155 | <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference problem.ecore#//ParametricDefinition/bodies"/> | ||
156 | <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference problem.ecore#//ParametricDefinition/parameters"/> | 156 | <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference problem.ecore#//ParametricDefinition/parameters"/> |
157 | </genClasses> | 157 | </genClasses> |
158 | <genClasses ecoreClass="problem.ecore#//RuleDefinition"> | 158 | <genClasses ecoreClass="problem.ecore#//RuleDefinition"> |
159 | <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference problem.ecore#//RuleDefinition/consequents"/> | 159 | <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference problem.ecore#//RuleDefinition/consequents"/> |
160 | <genFeatures children="true" createChild="true" propertySortChoices="true" ecoreFeature="ecore:EReference problem.ecore#//RuleDefinition/preconditions"/> | ||
160 | </genClasses> | 161 | </genClasses> |
161 | <genClasses ecoreClass="problem.ecore#//Consequent"> | 162 | <genClasses ecoreClass="problem.ecore#//Consequent"> |
162 | <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference problem.ecore#//Consequent/actions"/> | 163 | <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference problem.ecore#//Consequent/actions"/> |
@@ -175,10 +176,53 @@ | |||
175 | <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference problem.ecore#//NewAction/parent"/> | 176 | <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference problem.ecore#//NewAction/parent"/> |
176 | </genClasses> | 177 | </genClasses> |
177 | <genClasses ecoreClass="problem.ecore#//NewVariable"/> | 178 | <genClasses ecoreClass="problem.ecore#//NewVariable"/> |
178 | <genClasses ecoreClass="problem.ecore#//NegativeLiteral"/> | 179 | <genClasses ecoreClass="problem.ecore#//Expr"/> |
179 | <genClasses ecoreClass="problem.ecore#//CountLiteral"> | 180 | <genClasses ecoreClass="problem.ecore#//VariableOrNodeExpr"> |
180 | <genFeatures createChild="false" ecoreFeature="ecore:EAttribute problem.ecore#//CountLiteral/op"/> | 181 | <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference problem.ecore#//VariableOrNodeExpr/variableOrNode"/> |
181 | <genFeatures createChild="false" ecoreFeature="ecore:EAttribute problem.ecore#//CountLiteral/threshold"/> | 182 | <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference problem.ecore#//VariableOrNodeExpr/singletonVariable"/> |
183 | </genClasses> | ||
184 | <genClasses ecoreClass="problem.ecore#//BinaryExpr"> | ||
185 | <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference problem.ecore#//BinaryExpr/left"/> | ||
186 | <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference problem.ecore#//BinaryExpr/right"/> | ||
187 | </genClasses> | ||
188 | <genClasses ecoreClass="problem.ecore#//UnaryExpr"> | ||
189 | <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference problem.ecore#//UnaryExpr/body"/> | ||
190 | </genClasses> | ||
191 | <genClasses ecoreClass="problem.ecore#//ArithmeticUnaryExpr"> | ||
192 | <genFeatures createChild="false" ecoreFeature="ecore:EAttribute problem.ecore#//ArithmeticUnaryExpr/op"/> | ||
193 | </genClasses> | ||
194 | <genClasses ecoreClass="problem.ecore#//AggregationExpr"> | ||
195 | <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference problem.ecore#//AggregationExpr/value"/> | ||
196 | <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference problem.ecore#//AggregationExpr/condition"/> | ||
197 | <genFeatures createChild="false" ecoreFeature="ecore:EAttribute problem.ecore#//AggregationExpr/op"/> | ||
198 | </genClasses> | ||
199 | <genClasses ecoreClass="problem.ecore#//ComparisonExpr"> | ||
200 | <genFeatures createChild="false" ecoreFeature="ecore:EAttribute problem.ecore#//ComparisonExpr/op"/> | ||
201 | </genClasses> | ||
202 | <genClasses ecoreClass="problem.ecore#//ConstantExpr"> | ||
203 | <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference problem.ecore#//ConstantExpr/constant"/> | ||
204 | </genClasses> | ||
205 | <genClasses ecoreClass="problem.ecore#//QuantifiedUnaryExpr"/> | ||
206 | <genClasses ecoreClass="problem.ecore#//FunctionDefinition"> | ||
207 | <genFeatures children="true" createChild="true" propertySortChoices="true" ecoreFeature="ecore:EReference problem.ecore#//FunctionDefinition/cases"/> | ||
208 | <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference problem.ecore#//FunctionDefinition/functionType"/> | ||
209 | </genClasses> | ||
210 | <genClasses ecoreClass="problem.ecore#//Case"/> | ||
211 | <genClasses ecoreClass="problem.ecore#//Conjunction"> | ||
212 | <genFeatures children="true" createChild="true" propertySortChoices="true" ecoreFeature="ecore:EReference problem.ecore#//Conjunction/literals"/> | ||
213 | </genClasses> | ||
214 | <genClasses ecoreClass="problem.ecore#//Match"> | ||
215 | <genFeatures children="true" createChild="true" propertySortChoices="true" ecoreFeature="ecore:EReference problem.ecore#//Match/condition"/> | ||
216 | <genFeatures children="true" createChild="true" propertySortChoices="true" ecoreFeature="ecore:EReference problem.ecore#//Match/value"/> | ||
217 | </genClasses> | ||
218 | <genClasses ecoreClass="problem.ecore#//ArithmeticBinaryExpr"> | ||
219 | <genFeatures createChild="false" ecoreFeature="ecore:EAttribute problem.ecore#//ArithmeticBinaryExpr/op"/> | ||
220 | </genClasses> | ||
221 | <genClasses ecoreClass="problem.ecore#//NegationExpr"/> | ||
222 | <genClasses ecoreClass="problem.ecore#//CountExpr"/> | ||
223 | <genClasses ecoreClass="problem.ecore#//Relation"/> | ||
224 | <genClasses ecoreClass="problem.ecore#//ModalExpr"> | ||
225 | <genFeatures createChild="false" ecoreFeature="ecore:EAttribute problem.ecore#//ModalExpr/modality"/> | ||
182 | </genClasses> | 226 | </genClasses> |
183 | </genPackages> | 227 | </genPackages> |
184 | </genmodel:GenModel> | 228 | </genmodel:GenModel> |