aboutsummaryrefslogtreecommitdiffstats
path: root/Application/org.eclipse.viatra.solver.language.model/model/model.ecore
diff options
context:
space:
mode:
Diffstat (limited to 'Application/org.eclipse.viatra.solver.language.model/model/model.ecore')
-rw-r--r--Application/org.eclipse.viatra.solver.language.model/model/model.ecore327
1 files changed, 327 insertions, 0 deletions
diff --git a/Application/org.eclipse.viatra.solver.language.model/model/model.ecore b/Application/org.eclipse.viatra.solver.language.model/model/model.ecore
new file mode 100644
index 00000000..f5e6a91e
--- /dev/null
+++ b/Application/org.eclipse.viatra.solver.language.model/model/model.ecore
@@ -0,0 +1,327 @@
1<?xml version="1.0" encoding="UTF-8"?>
2<ecore:EPackage xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
3 xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" name="solverLanguage" nsURI="http://www.eclipse.org/viatra/solver/language/SolverLanguage"
4 nsPrefix="solverLanguage">
5 <eClassifiers xsi:type="ecore:EClass" name="PathComponent">
6 <eStructuralFeatures xsi:type="ecore:EReference" name="symbol" eType="#//Symbol"/>
7 <eStructuralFeatures xsi:type="ecore:EAttribute" name="inverse" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
8 <eStructuralFeatures xsi:type="ecore:EAttribute" name="transitiveClosure" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
9 <eStructuralFeatures xsi:type="ecore:EAttribute" name="reflexiveTransitiveClosure"
10 eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
11 </eClassifiers>
12 <eClassifiers xsi:type="ecore:EClass" name="Symbol" abstract="true">
13 <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
14 </eClassifiers>
15 <eClassifiers xsi:type="ecore:EClass" name="Call" eSuperTypes="#//Expression">
16 <eStructuralFeatures xsi:type="ecore:EReference" name="functor" eType="#//Reference"
17 containment="true"/>
18 <eStructuralFeatures xsi:type="ecore:EReference" name="argumentList" eType="#//ArgumentList"
19 containment="true"/>
20 </eClassifiers>
21 <eClassifiers xsi:type="ecore:EClass" name="Reference" eSuperTypes="#//Expression">
22 <eStructuralFeatures xsi:type="ecore:EReference" name="components" upperBound="-1"
23 eType="#//PathComponent" containment="true"/>
24 </eClassifiers>
25 <eClassifiers xsi:type="ecore:EClass" name="Expression" abstract="true" eSuperTypes="#//Statement">
26 <eStructuralFeatures xsi:type="ecore:EReference" name="existsVariables" upperBound="-1"
27 eType="#//Variable" transient="true" containment="true"/>
28 </eClassifiers>
29 <eClassifiers xsi:type="ecore:EClass" name="Argument" abstract="true"/>
30 <eClassifiers xsi:type="ecore:EClass" name="ArgumentList">
31 <eStructuralFeatures xsi:type="ecore:EReference" name="arguments" upperBound="-1"
32 eType="#//Argument" containment="true"/>
33 </eClassifiers>
34 <eClassifiers xsi:type="ecore:EClass" name="ExpressionArgument" eSuperTypes="#//Argument">
35 <eStructuralFeatures xsi:type="ecore:EReference" name="expression" eType="#//Expression"
36 containment="true"/>
37 </eClassifiers>
38 <eClassifiers xsi:type="ecore:EClass" name="StarArgument" eSuperTypes="#//Argument"/>
39 <eClassifiers xsi:type="ecore:EClass" name="TypedArgument" abstract="true" eSuperTypes="#//Argument">
40 <eStructuralFeatures xsi:type="ecore:EReference" name="typeReference" eType="#//TypeReference"
41 containment="true"/>
42 </eClassifiers>
43 <eClassifiers xsi:type="ecore:EClass" name="MultiaryExpession" abstract="true" eSuperTypes="#//Expression">
44 <eStructuralFeatures xsi:type="ecore:EReference" name="children" upperBound="-1"
45 eType="#//Expression" containment="true"/>
46 </eClassifiers>
47 <eClassifiers xsi:type="ecore:EClass" name="Variable" eSuperTypes="#//Symbol">
48 <eStructuralFeatures xsi:type="ecore:EReference" name="typeReference" eType="#//TypeReference"
49 containment="true"/>
50 </eClassifiers>
51 <eClassifiers xsi:type="ecore:EClass" name="UnaryExpression" eSuperTypes="#//Expression">
52 <eStructuralFeatures xsi:type="ecore:EReference" name="body" eType="#//Expression"
53 containment="true"/>
54 <eStructuralFeatures xsi:type="ecore:EAttribute" name="op" eType="#//UnaryOperator"/>
55 </eClassifiers>
56 <eClassifiers xsi:type="ecore:EClass" name="BinaryExpression" eSuperTypes="#//Expression">
57 <eStructuralFeatures xsi:type="ecore:EAttribute" name="op" eType="#//BinaryOperator"/>
58 <eStructuralFeatures xsi:type="ecore:EReference" name="left" eType="#//Expression"
59 containment="true"/>
60 <eStructuralFeatures xsi:type="ecore:EReference" name="right" eType="#//Expression"
61 containment="true"/>
62 </eClassifiers>
63 <eClassifiers xsi:type="ecore:EClass" name="Disjunction" eSuperTypes="#//MultiaryExpession"/>
64 <eClassifiers xsi:type="ecore:EClass" name="Conjunction" eSuperTypes="#//MultiaryExpession"/>
65 <eClassifiers xsi:type="ecore:EEnum" name="UnaryOperator">
66 <eLiterals name="NOT"/>
67 <eLiterals name="PLUS" value="1"/>
68 <eLiterals name="MINUS" value="2"/>
69 <eLiterals name="MAYBE" value="3"/>
70 </eClassifiers>
71 <eClassifiers xsi:type="ecore:EEnum" name="BinaryOperator">
72 <eLiterals name="PLUS"/>
73 <eLiterals name="MINUS" value="1"/>
74 <eLiterals name="MULTIPLY" value="2"/>
75 <eLiterals name="DIVIDE" value="3"/>
76 <eLiterals name="POW" value="4"/>
77 <eLiterals name="IN" value="5"/>
78 <eLiterals name="EQUALS" value="6"/>
79 <eLiterals name="NOT_EQUALS" value="7"/>
80 <eLiterals name="LESS" value="8"/>
81 <eLiterals name="LESS_EQUALS" value="9"/>
82 <eLiterals name="GREATER" value="10"/>
83 <eLiterals name="GREATER_EQUALS" value="11"/>
84 </eClassifiers>
85 <eClassifiers xsi:type="ecore:EClass" name="ConditionalExpression" eSuperTypes="#//Expression">
86 <eStructuralFeatures xsi:type="ecore:EReference" name="condition" eType="#//Expression"
87 containment="true"/>
88 <eStructuralFeatures xsi:type="ecore:EReference" name="then" eType="#//Expression"
89 containment="true"/>
90 <eStructuralFeatures xsi:type="ecore:EReference" name="else" eType="#//Expression"
91 containment="true"/>
92 </eClassifiers>
93 <eClassifiers xsi:type="ecore:EClass" name="Switch" eSuperTypes="#//Expression">
94 <eStructuralFeatures xsi:type="ecore:EReference" name="cases" upperBound="-1"
95 eType="#//Case" containment="true"/>
96 </eClassifiers>
97 <eClassifiers xsi:type="ecore:EClass" name="Case" eSuperTypes="#//Expression">
98 <eStructuralFeatures xsi:type="ecore:EReference" name="condition" eType="#//Expression"
99 containment="true"/>
100 <eStructuralFeatures xsi:type="ecore:EReference" name="body" eType="#//Expression"
101 containment="true"/>
102 </eClassifiers>
103 <eClassifiers xsi:type="ecore:EClass" name="LetExpression" eSuperTypes="#//Expression">
104 <eStructuralFeatures xsi:type="ecore:EReference" name="bindings" upperBound="-1"
105 eType="#//LetBinding" containment="true"/>
106 <eStructuralFeatures xsi:type="ecore:EReference" name="body" eType="#//Expression"
107 containment="true"/>
108 </eClassifiers>
109 <eClassifiers xsi:type="ecore:EClass" name="LetBinding">
110 <eStructuralFeatures xsi:type="ecore:EReference" name="value" eType="#//Expression"
111 containment="true"/>
112 <eStructuralFeatures xsi:type="ecore:EReference" name="variable" eType="#//Variable"
113 transient="true" containment="true"/>
114 <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
115 <eStructuralFeatures xsi:type="ecore:EReference" name="type" eType="#//Symbol"/>
116 </eClassifiers>
117 <eClassifiers xsi:type="ecore:EClass" name="Literal" abstract="true" eSuperTypes="#//Expression"/>
118 <eClassifiers xsi:type="ecore:EClass" name="IntLiteral" eSuperTypes="#//Literal">
119 <eStructuralFeatures xsi:type="ecore:EAttribute" name="value" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
120 </eClassifiers>
121 <eClassifiers xsi:type="ecore:EClass" name="RealLiteral" eSuperTypes="#//Literal">
122 <eStructuralFeatures xsi:type="ecore:EAttribute" name="value" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBigDecimal"/>
123 </eClassifiers>
124 <eClassifiers xsi:type="ecore:EClass" name="StringLiteral" eSuperTypes="#//Literal">
125 <eStructuralFeatures xsi:type="ecore:EAttribute" name="value" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
126 </eClassifiers>
127 <eClassifiers xsi:type="ecore:EClass" name="LogicLiteral" eSuperTypes="#//Literal">
128 <eStructuralFeatures xsi:type="ecore:EAttribute" name="value" eType="#//LogicValue"/>
129 </eClassifiers>
130 <eClassifiers xsi:type="ecore:EEnum" name="LogicValue">
131 <eLiterals name="UNKNOWN"/>
132 <eLiterals name="FALSE" value="1"/>
133 <eLiterals name="TRUE" value="2"/>
134 <eLiterals name="ERROR" value="3"/>
135 </eClassifiers>
136 <eClassifiers xsi:type="ecore:EClass" name="EmptyLiteral" eSuperTypes="#//Literal"/>
137 <eClassifiers xsi:type="ecore:EClass" name="CastExpression" eSuperTypes="#//Expression">
138 <eStructuralFeatures xsi:type="ecore:EReference" name="body" eType="#//Expression"
139 containment="true"/>
140 <eStructuralFeatures xsi:type="ecore:EReference" name="targetType" eType="#//Symbol"/>
141 </eClassifiers>
142 <eClassifiers xsi:type="ecore:EClass" name="AggregateExpression" abstract="true"
143 eSuperTypes="#//Expression">
144 <eStructuralFeatures xsi:type="ecore:EReference" name="forallVariables" upperBound="-1"
145 eType="#//Variable" transient="true" containment="true"/>
146 <eStructuralFeatures xsi:type="ecore:EReference" name="condition" eType="#//Expression"
147 containment="true"/>
148 </eClassifiers>
149 <eClassifiers xsi:type="ecore:EClass" name="Count" eSuperTypes="#//AggregateExpression"/>
150 <eClassifiers xsi:type="ecore:EClass" name="Aggregation" eSuperTypes="#//AggregateExpression">
151 <eStructuralFeatures xsi:type="ecore:EReference" name="value" eType="#//Expression"
152 containment="true"/>
153 <eStructuralFeatures xsi:type="ecore:EReference" name="op" eType="#//Symbol"/>
154 </eClassifiers>
155 <eClassifiers xsi:type="ecore:EClass" name="Forall" eSuperTypes="#//AggregateExpression">
156 <eStructuralFeatures xsi:type="ecore:EReference" name="body" eType="#//Expression"
157 containment="true"/>
158 </eClassifiers>
159 <eClassifiers xsi:type="ecore:EClass" name="TypeReference">
160 <eStructuralFeatures xsi:type="ecore:EAttribute" name="forceObjectType" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
161 <eStructuralFeatures xsi:type="ecore:EReference" name="type" eType="#//Symbol"/>
162 </eClassifiers>
163 <eClassifiers xsi:type="ecore:EClass" name="InfinityLiteral" eSuperTypes="#//Literal"/>
164 <eClassifiers xsi:type="ecore:EClass" name="Interval" eSuperTypes="#//Expression">
165 <eStructuralFeatures xsi:type="ecore:EReference" name="lowerBound" eType="#//Expression"
166 containment="true"/>
167 <eStructuralFeatures xsi:type="ecore:EReference" name="upperBound" eType="#//Expression"
168 containment="true"/>
169 </eClassifiers>
170 <eClassifiers xsi:type="ecore:EClass" name="Functor" abstract="true" eSuperTypes="#//Symbol">
171 <eStructuralFeatures xsi:type="ecore:EReference" name="parameters" upperBound="-1"
172 eType="#//Variable" containment="true"/>
173 </eClassifiers>
174 <eClassifiers xsi:type="ecore:EClass" name="Relation" abstract="true" eSuperTypes="#//Functor"/>
175 <eClassifiers xsi:type="ecore:EClass" name="BaseRelation" eSuperTypes="#//Relation"/>
176 <eClassifiers xsi:type="ecore:EClass" name="Predicate" eSuperTypes="#//Relation"/>
177 <eClassifiers xsi:type="ecore:EClass" name="Datatype" eSuperTypes="#//Relation"/>
178 <eClassifiers xsi:type="ecore:EClass" name="Function" abstract="true" eSuperTypes="#//Functor">
179 <eStructuralFeatures xsi:type="ecore:EReference" name="resultType" eType="#//Datatype"/>
180 </eClassifiers>
181 <eClassifiers xsi:type="ecore:EClass" name="Metric" eSuperTypes="#//Function"/>
182 <eClassifiers xsi:type="ecore:EClass" name="Operator" eSuperTypes="#//Function"/>
183 <eClassifiers xsi:type="ecore:EClass" name="Node" eSuperTypes="#//Symbol">
184 <eStructuralFeatures xsi:type="ecore:EAttribute" name="named" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
185 </eClassifiers>
186 <eClassifiers xsi:type="ecore:EClass" name="Statement" abstract="true"/>
187 <eClassifiers xsi:type="ecore:EClass" name="AbstractAssertion" abstract="true" eSuperTypes="#//Statement">
188 <eStructuralFeatures xsi:type="ecore:EReference" name="expression" eType="#//Expression"
189 containment="true"/>
190 <eStructuralFeatures xsi:type="ecore:EReference" name="range" eType="#//Expression"
191 containment="true"/>
192 </eClassifiers>
193 <eClassifiers xsi:type="ecore:EClass" name="FunctorDefiniton" abstract="true" eSuperTypes="#//Statement">
194 <eStructuralFeatures xsi:type="ecore:EReference" name="head" eType="#//Expression"
195 containment="true"/>
196 <eStructuralFeatures xsi:type="ecore:EReference" name="body" eType="#//Expression"
197 containment="true"/>
198 </eClassifiers>
199 <eClassifiers xsi:type="ecore:EClass" name="PredicateDefinition" eSuperTypes="#//FunctorDefiniton #//InlinePredicateAttrributes"/>
200 <eClassifiers xsi:type="ecore:EClass" name="FunctionDefinition" eSuperTypes="#//FunctorDefiniton">
201 <eStructuralFeatures xsi:type="ecore:EReference" name="resultType" eType="#//Symbol"/>
202 </eClassifiers>
203 <eClassifiers xsi:type="ecore:EClass" name="Attribute" abstract="true" eSuperTypes="#//Statement">
204 <eStructuralFeatures xsi:type="ecore:EReference" name="target" eType="#//Symbol"/>
205 <eStructuralFeatures xsi:type="ecore:EAttribute" name="kind" eType="#//AttributeKind"/>
206 </eClassifiers>
207 <eClassifiers xsi:type="ecore:EClass" name="ExternDeclaration" abstract="true" eSuperTypes="#//Statement">
208 <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
209 </eClassifiers>
210 <eClassifiers xsi:type="ecore:EClass" name="ExternFunctorDeclaration" abstract="true"
211 eSuperTypes="#//ExternDeclaration">
212 <eStructuralFeatures xsi:type="ecore:EReference" name="argumentList" eType="#//ArgumentList"
213 containment="true"/>
214 </eClassifiers>
215 <eClassifiers xsi:type="ecore:EClass" name="ExternPredicateDeclaration" eSuperTypes="#//ExternFunctorDeclaration #//InlinePredicateAttrributes"/>
216 <eClassifiers xsi:type="ecore:EClass" name="ExternFunctionDeclaration" eSuperTypes="#//ExternFunctorDeclaration">
217 <eStructuralFeatures xsi:type="ecore:EReference" name="resultType" eType="#//Symbol"/>
218 </eClassifiers>
219 <eClassifiers xsi:type="ecore:EClass" name="ExternAggregationOperatorDeclaration"
220 eSuperTypes="#//ExternDeclaration">
221 <eStructuralFeatures xsi:type="ecore:EReference" name="argumentType" eType="#//Symbol"/>
222 <eStructuralFeatures xsi:type="ecore:EReference" name="resultType" eType="#//Symbol"/>
223 </eClassifiers>
224 <eClassifiers xsi:type="ecore:EClass" name="ExternDatatypeDeclaration" eSuperTypes="#//ExternDeclaration"/>
225 <eClassifiers xsi:type="ecore:EClass" name="ClassDeclaration" eSuperTypes="#//Statement">
226 <eStructuralFeatures xsi:type="ecore:EReference" name="fields" upperBound="-1"
227 eType="#//Field" containment="true"/>
228 <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
229 <eStructuralFeatures xsi:type="ecore:EAttribute" name="abstract" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
230 <eStructuralFeatures xsi:type="ecore:EReference" name="supertypes" upperBound="-1"
231 eType="#//Symbol"/>
232 <eStructuralFeatures xsi:type="ecore:EAttribute" name="root" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
233 </eClassifiers>
234 <eClassifiers xsi:type="ecore:EClass" name="EnumDeclaration" eSuperTypes="#//Statement">
235 <eStructuralFeatures xsi:type="ecore:EReference" name="literals" upperBound="-1"
236 eType="#//EnumLiteral" containment="true"/>
237 <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
238 </eClassifiers>
239 <eClassifiers xsi:type="ecore:EClass" name="EnumLiteral">
240 <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
241 </eClassifiers>
242 <eClassifiers xsi:type="ecore:EClass" name="Field">
243 <eStructuralFeatures xsi:type="ecore:EAttribute" name="containment" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
244 <eStructuralFeatures xsi:type="ecore:EAttribute" name="crossReference" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
245 <eStructuralFeatures xsi:type="ecore:EReference" name="opposite" eType="#//Symbol"/>
246 <eStructuralFeatures xsi:type="ecore:EReference" name="multiplicity" eType="#//Multiplicity"
247 containment="true"/>
248 <eStructuralFeatures xsi:type="ecore:EReference" name="type" eType="#//Symbol"/>
249 <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
250 </eClassifiers>
251 <eClassifiers xsi:type="ecore:EClass" name="Multiplicity" abstract="true"/>
252 <eClassifiers xsi:type="ecore:EClass" name="DefaultAssertion" eSuperTypes="#//AbstractAssertion"/>
253 <eClassifiers xsi:type="ecore:EClass" name="Assertion" eSuperTypes="#//AbstractAssertion"/>
254 <eClassifiers xsi:type="ecore:EClass" name="UnboundedMultiplicity" eSuperTypes="#//Multiplicity"/>
255 <eClassifiers xsi:type="ecore:EClass" name="ExactMultiplicity" eSuperTypes="#//Multiplicity">
256 <eStructuralFeatures xsi:type="ecore:EAttribute" name="value" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
257 </eClassifiers>
258 <eClassifiers xsi:type="ecore:EClass" name="BoundedMultiplicity" eSuperTypes="#//Multiplicity">
259 <eStructuralFeatures xsi:type="ecore:EAttribute" name="lowerBound" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
260 <eStructuralFeatures xsi:type="ecore:EAttribute" name="upperBound" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
261 </eClassifiers>
262 <eClassifiers xsi:type="ecore:EClass" name="InlinePredicateAttrributes" abstract="true"
263 interface="true">
264 <eStructuralFeatures xsi:type="ecore:EAttribute" name="error" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
265 <eStructuralFeatures xsi:type="ecore:EAttribute" name="functional" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
266 </eClassifiers>
267 <eClassifiers xsi:type="ecore:EClass" name="AggregationOperator" eSuperTypes="#//Symbol">
268 <eStructuralFeatures xsi:type="ecore:EReference" name="argumentType" eType="#//Datatype"/>
269 <eStructuralFeatures xsi:type="ecore:EReference" name="resultType" eType="#//Datatype"/>
270 </eClassifiers>
271 <eClassifiers xsi:type="ecore:EClass" name="Problem">
272 <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
273 <eStructuralFeatures xsi:type="ecore:EReference" name="statements" upperBound="-1"
274 eType="#//Statement" containment="true"/>
275 <eStructuralFeatures xsi:type="ecore:EReference" name="symbols" upperBound="-1"
276 eType="#//Symbol" transient="true" containment="true"/>
277 <eStructuralFeatures xsi:type="ecore:EReference" name="imports" upperBound="-1"
278 eType="#//Import" containment="true"/>
279 </eClassifiers>
280 <eClassifiers xsi:type="ecore:EClass" name="TypedStarArgument" eSuperTypes="#//TypedArgument"/>
281 <eClassifiers xsi:type="ecore:EClass" name="TypedVariableArgument" eSuperTypes="#//TypedArgument">
282 <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
283 </eClassifiers>
284 <eClassifiers xsi:type="ecore:EClass" name="UnnamedErrorPredicateDefintion" eSuperTypes="#//Statement">
285 <eStructuralFeatures xsi:type="ecore:EReference" name="argumentList" eType="#//ArgumentList"
286 containment="true"/>
287 <eStructuralFeatures xsi:type="ecore:EReference" name="body" eType="#//Expression"
288 containment="true"/>
289 </eClassifiers>
290 <eClassifiers xsi:type="ecore:EClass" name="ObjectiveDeclaration" eSuperTypes="#//Statement">
291 <eStructuralFeatures xsi:type="ecore:EAttribute" name="kind" eType="#//ObjectiveKind"/>
292 <eStructuralFeatures xsi:type="ecore:EReference" name="objective" eType="#//Expression"
293 containment="true"/>
294 </eClassifiers>
295 <eClassifiers xsi:type="ecore:EClass" name="ScopeDeclaration" eSuperTypes="#//Statement">
296 <eStructuralFeatures xsi:type="ecore:EReference" name="type" eType="#//Symbol"/>
297 </eClassifiers>
298 <eClassifiers xsi:type="ecore:EEnum" name="ObjectiveKind">
299 <eLiterals name="MINIMIZATION"/>
300 <eLiterals name="MAXIMIZATION" value="1"/>
301 </eClassifiers>
302 <eClassifiers xsi:type="ecore:EClass" name="ExactScope" eSuperTypes="#//ScopeDeclaration">
303 <eStructuralFeatures xsi:type="ecore:EAttribute" name="size" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
304 </eClassifiers>
305 <eClassifiers xsi:type="ecore:EClass" name="BoundedScope" eSuperTypes="#//ScopeDeclaration">
306 <eStructuralFeatures xsi:type="ecore:EAttribute" name="lowerBound" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
307 <eStructuralFeatures xsi:type="ecore:EAttribute" name="upperBound" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
308 </eClassifiers>
309 <eClassifiers xsi:type="ecore:EClass" name="LowerBoundedScope" eSuperTypes="#//ScopeDeclaration">
310 <eStructuralFeatures xsi:type="ecore:EAttribute" name="lowerBound" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
311 </eClassifiers>
312 <eClassifiers xsi:type="ecore:EClass" name="NamespaceImport" eSuperTypes="#//Import">
313 <eStructuralFeatures xsi:type="ecore:EAttribute" name="importedNamespace" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
314 </eClassifiers>
315 <eClassifiers xsi:type="ecore:EClass" name="Import">
316 <eStructuralFeatures xsi:type="ecore:EAttribute" name="alias" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
317 </eClassifiers>
318 <eClassifiers xsi:type="ecore:EClass" name="UriImport" eSuperTypes="#//Import">
319 <eStructuralFeatures xsi:type="ecore:EAttribute" name="uri" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
320 </eClassifiers>
321 <eClassifiers xsi:type="ecore:EEnum" name="AttributeKind">
322 <eLiterals name="FUNCTIONAL"/>
323 <eLiterals name="ERROR" value="1"/>
324 <eLiterals name="ROOT" value="2"/>
325 <eLiterals name="CONTAINMENT" value="3"/>
326 </eClassifiers>
327</ecore:EPackage>