diff options
Diffstat (limited to 'subprojects/language-model/src/main/resources/model/problem.ecore')
-rw-r--r-- | subprojects/language-model/src/main/resources/model/problem.ecore | 139 |
1 files changed, 95 insertions, 44 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> |