diff options
Diffstat (limited to 'Application/org.eclipse.viatra.solver.language/model/SolverLanguage.ecore')
-rw-r--r-- | Application/org.eclipse.viatra.solver.language/model/SolverLanguage.ecore | 291 |
1 files changed, 291 insertions, 0 deletions
diff --git a/Application/org.eclipse.viatra.solver.language/model/SolverLanguage.ecore b/Application/org.eclipse.viatra.solver.language/model/SolverLanguage.ecore new file mode 100644 index 00000000..905e5a90 --- /dev/null +++ b/Application/org.eclipse.viatra.solver.language/model/SolverLanguage.ecore | |||
@@ -0,0 +1,291 @@ | |||
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="Problem"> | ||
6 | <eStructuralFeatures xsi:type="ecore:EReference" name="statements" upperBound="-1" | ||
7 | eType="#//Statement" containment="true"/> | ||
8 | </eClassifiers> | ||
9 | <eClassifiers xsi:type="ecore:EClass" name="Statement"/> | ||
10 | <eClassifiers xsi:type="ecore:EClass" name="PredicateDefinition" eSuperTypes="#//Statement"> | ||
11 | <eStructuralFeatures xsi:type="ecore:EReference" name="head" eType="#//Expression" | ||
12 | containment="true"/> | ||
13 | <eStructuralFeatures xsi:type="ecore:EReference" name="body" eType="#//Expression" | ||
14 | containment="true"/> | ||
15 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="functional" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/> | ||
16 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="error" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/> | ||
17 | </eClassifiers> | ||
18 | <eClassifiers xsi:type="ecore:EClass" name="UnnamedErrorPrediateDefinition" eSuperTypes="#//Statement"> | ||
19 | <eStructuralFeatures xsi:type="ecore:EReference" name="argumentList" eType="#//ArgumentList" | ||
20 | containment="true"/> | ||
21 | <eStructuralFeatures xsi:type="ecore:EReference" name="body" eType="#//Expression" | ||
22 | containment="true"/> | ||
23 | </eClassifiers> | ||
24 | <eClassifiers xsi:type="ecore:EClass" name="DefaultDefinition" eSuperTypes="#//Statement"> | ||
25 | <eStructuralFeatures xsi:type="ecore:EReference" name="head" eType="#//Call" containment="true"/> | ||
26 | <eStructuralFeatures xsi:type="ecore:EReference" name="range" eType="#//Expression" | ||
27 | containment="true"/> | ||
28 | </eClassifiers> | ||
29 | <eClassifiers xsi:type="ecore:EClass" name="MetricDefinition" eSuperTypes="#//Statement"> | ||
30 | <eStructuralFeatures xsi:type="ecore:EReference" name="head" eType="#//Expression" | ||
31 | containment="true"/> | ||
32 | <eStructuralFeatures xsi:type="ecore:EReference" name="body" eType="#//Expression" | ||
33 | containment="true"/> | ||
34 | <eStructuralFeatures xsi:type="ecore:EReference" name="type" eType="#//NamedElement"/> | ||
35 | </eClassifiers> | ||
36 | <eClassifiers xsi:type="ecore:EClass" name="ExternPredicateDefinition" eSuperTypes="#//Statement"> | ||
37 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/> | ||
38 | <eStructuralFeatures xsi:type="ecore:EReference" name="argumentList" eType="#//ArgumentList" | ||
39 | containment="true"/> | ||
40 | </eClassifiers> | ||
41 | <eClassifiers xsi:type="ecore:EClass" name="ExternMetricDefinition" eSuperTypes="#//Statement"> | ||
42 | <eStructuralFeatures xsi:type="ecore:EReference" name="type" eType="#//NamedElement"/> | ||
43 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/> | ||
44 | <eStructuralFeatures xsi:type="ecore:EReference" name="argumentList" eType="#//ArgumentList" | ||
45 | containment="true"/> | ||
46 | </eClassifiers> | ||
47 | <eClassifiers xsi:type="ecore:EClass" name="ExternAggregatorDefinition" eSuperTypes="#//Statement"> | ||
48 | <eStructuralFeatures xsi:type="ecore:EReference" name="type" eType="#//NamedElement"/> | ||
49 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/> | ||
50 | <eStructuralFeatures xsi:type="ecore:EReference" name="inputType" eType="#//NamedElement"/> | ||
51 | </eClassifiers> | ||
52 | <eClassifiers xsi:type="ecore:EClass" name="ExternDatatypeDefinition" eSuperTypes="#//Statement"> | ||
53 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/> | ||
54 | <eStructuralFeatures xsi:type="ecore:EReference" name="supertypes" unique="false" | ||
55 | upperBound="-1" eType="#//NamedElement"/> | ||
56 | </eClassifiers> | ||
57 | <eClassifiers xsi:type="ecore:EClass" name="NamedElement"> | ||
58 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/> | ||
59 | </eClassifiers> | ||
60 | <eClassifiers xsi:type="ecore:EClass" name="Expression" abstract="true" eSuperTypes="#//Statement"/> | ||
61 | <eClassifiers xsi:type="ecore:EClass" name="IfElse" eSuperTypes="#//Expression"> | ||
62 | <eStructuralFeatures xsi:type="ecore:EReference" name="then" eType="#//Expression" | ||
63 | containment="true"/> | ||
64 | <eStructuralFeatures xsi:type="ecore:EReference" name="else" eType="#//Expression" | ||
65 | containment="true"/> | ||
66 | <eStructuralFeatures xsi:type="ecore:EReference" name="condition" eType="#//Expression" | ||
67 | containment="true"/> | ||
68 | </eClassifiers> | ||
69 | <eClassifiers xsi:type="ecore:EClass" name="Let" eSuperTypes="#//Expression"> | ||
70 | <eStructuralFeatures xsi:type="ecore:EReference" name="bindings" upperBound="-1" | ||
71 | eType="#//LetBinding" containment="true"/> | ||
72 | <eStructuralFeatures xsi:type="ecore:EReference" name="body" eType="#//Expression" | ||
73 | containment="true"/> | ||
74 | </eClassifiers> | ||
75 | <eClassifiers xsi:type="ecore:EClass" name="LetBinding"> | ||
76 | <eStructuralFeatures xsi:type="ecore:EReference" name="variable" eType="#//NamedElement" | ||
77 | containment="true"/> | ||
78 | <eStructuralFeatures xsi:type="ecore:EReference" name="value" eType="#//Expression" | ||
79 | containment="true"/> | ||
80 | </eClassifiers> | ||
81 | <eClassifiers xsi:type="ecore:EClass" name="Case" eSuperTypes="#//Expression"> | ||
82 | <eStructuralFeatures xsi:type="ecore:EReference" name="body" eType="#//Expression" | ||
83 | containment="true"/> | ||
84 | <eStructuralFeatures xsi:type="ecore:EReference" name="condition" eType="#//Expression" | ||
85 | containment="true"/> | ||
86 | </eClassifiers> | ||
87 | <eClassifiers xsi:type="ecore:EEnum" name="BinaryOperator"> | ||
88 | <eLiterals name="EQ" literal="EQ"/> | ||
89 | <eLiterals name="NOT_EQ" value="1" literal="NOT_EQ"/> | ||
90 | <eLiterals name="LESS" value="2" literal="LESS"/> | ||
91 | <eLiterals name="LESS_EQ" value="3" literal="LESS_EQ"/> | ||
92 | <eLiterals name="GREATER" value="4" literal="GREATER"/> | ||
93 | <eLiterals name="GREATER_EQ" value="5" literal="GREATER_EQ"/> | ||
94 | <eLiterals name="IN" value="6" literal="IN"/> | ||
95 | <eLiterals name="ADD" value="7" literal="ADD"/> | ||
96 | <eLiterals name="SUB" value="8" literal="SUB"/> | ||
97 | <eLiterals name="MUL" value="9" literal="MUL"/> | ||
98 | <eLiterals name="DIV" value="10" literal="DIV"/> | ||
99 | <eLiterals name="POW" value="11" literal="POW"/> | ||
100 | <eLiterals name="IMPLIES" value="12"/> | ||
101 | </eClassifiers> | ||
102 | <eClassifiers xsi:type="ecore:EEnum" name="UnaryOp"> | ||
103 | <eLiterals name="NEG" literal="!"/> | ||
104 | <eLiterals name="PLUS" value="1" literal="+"/> | ||
105 | <eLiterals name="MINUS" value="2" literal="-"/> | ||
106 | <eLiterals name="MAY" value="3" literal="may"/> | ||
107 | <eLiterals name="MUST" value="4" literal="must"/> | ||
108 | <eLiterals name="CURRENT" value="5" literal="current"/> | ||
109 | </eClassifiers> | ||
110 | <eClassifiers xsi:type="ecore:EClass" name="LocalVariables"> | ||
111 | <eStructuralFeatures xsi:type="ecore:EReference" name="variables" upperBound="-1" | ||
112 | eType="#//NamedElement" containment="true"/> | ||
113 | </eClassifiers> | ||
114 | <eClassifiers xsi:type="ecore:EClass" name="QuantifiedExpression" eSuperTypes="#//Expression"> | ||
115 | <eStructuralFeatures xsi:type="ecore:EReference" name="localVariables" eType="#//LocalVariables" | ||
116 | containment="true"/> | ||
117 | <eStructuralFeatures xsi:type="ecore:EReference" name="body" eType="#//Expression" | ||
118 | containment="true"/> | ||
119 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="quantifier" eType="#//Quantifier"/> | ||
120 | </eClassifiers> | ||
121 | <eClassifiers xsi:type="ecore:EClass" name="Aggregation" eSuperTypes="#//Expression"> | ||
122 | <eStructuralFeatures xsi:type="ecore:EReference" name="op" eType="#//NamedElement"/> | ||
123 | <eStructuralFeatures xsi:type="ecore:EReference" name="localVariables" eType="#//LocalVariables" | ||
124 | containment="true"/> | ||
125 | <eStructuralFeatures xsi:type="ecore:EReference" name="body" eType="#//Expression" | ||
126 | containment="true"/> | ||
127 | <eStructuralFeatures xsi:type="ecore:EReference" name="condition" eType="#//Expression" | ||
128 | containment="true"/> | ||
129 | </eClassifiers> | ||
130 | <eClassifiers xsi:type="ecore:EClass" name="Call" eSuperTypes="#//Expression"> | ||
131 | <eStructuralFeatures xsi:type="ecore:EReference" name="functor" eType="#//Reference" | ||
132 | containment="true"/> | ||
133 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="transitiveClosure" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/> | ||
134 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="reflexiveTransitiveClosure" | ||
135 | eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/> | ||
136 | <eStructuralFeatures xsi:type="ecore:EReference" name="argumentList" eType="#//ArgumentList" | ||
137 | containment="true"/> | ||
138 | </eClassifiers> | ||
139 | <eClassifiers xsi:type="ecore:EClass" name="ArgumentList"> | ||
140 | <eStructuralFeatures xsi:type="ecore:EReference" name="arguments" upperBound="-1" | ||
141 | eType="#//Argument" containment="true"/> | ||
142 | </eClassifiers> | ||
143 | <eClassifiers xsi:type="ecore:EClass" name="Argument"/> | ||
144 | <eClassifiers xsi:type="ecore:EClass" name="ExpressionArgument" eSuperTypes="#//Argument"> | ||
145 | <eStructuralFeatures xsi:type="ecore:EReference" name="body" eType="#//Expression" | ||
146 | containment="true"/> | ||
147 | </eClassifiers> | ||
148 | <eClassifiers xsi:type="ecore:EClass" name="StarArgument" eSuperTypes="#//Argument"/> | ||
149 | <eClassifiers xsi:type="ecore:EClass" name="TypedArgument" eSuperTypes="#//Argument"> | ||
150 | <eStructuralFeatures xsi:type="ecore:EReference" name="type" eType="#//NamedElement"/> | ||
151 | <eStructuralFeatures xsi:type="ecore:EReference" name="variable" eType="#//NamedElement"/> | ||
152 | </eClassifiers> | ||
153 | <eClassifiers xsi:type="ecore:EClass" name="TypedStarArgument" eSuperTypes="#//Argument"> | ||
154 | <eStructuralFeatures xsi:type="ecore:EReference" name="type" eType="#//NamedElement"/> | ||
155 | </eClassifiers> | ||
156 | <eClassifiers xsi:type="ecore:EClass" name="Reference" eSuperTypes="#//Expression"> | ||
157 | <eStructuralFeatures xsi:type="ecore:EReference" name="referred" eType="#//NamedElement"/> | ||
158 | </eClassifiers> | ||
159 | <eClassifiers xsi:type="ecore:EClass" name="Interval" eSuperTypes="#//Expression"> | ||
160 | <eStructuralFeatures xsi:type="ecore:EReference" name="lowerBound" eType="#//Expression" | ||
161 | containment="true"/> | ||
162 | <eStructuralFeatures xsi:type="ecore:EReference" name="upperBound" eType="#//Expression" | ||
163 | containment="true"/> | ||
164 | </eClassifiers> | ||
165 | <eClassifiers xsi:type="ecore:EClass" name="Literal" eSuperTypes="#//Expression"/> | ||
166 | <eClassifiers xsi:type="ecore:EEnum" name="LogicValue"> | ||
167 | <eLiterals name="TRUE" literal="true"/> | ||
168 | <eLiterals name="FALSE" value="1" literal="false"/> | ||
169 | <eLiterals name="UNKNOWN" value="2" literal="unknown"/> | ||
170 | <eLiterals name="ERROR" value="3" literal="error"/> | ||
171 | </eClassifiers> | ||
172 | <eClassifiers xsi:type="ecore:EClass" name="LogicLiteral" eSuperTypes="#//Literal"> | ||
173 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="value" eType="#//LogicValue"/> | ||
174 | </eClassifiers> | ||
175 | <eClassifiers xsi:type="ecore:EClass" name="NumericLiteral" eSuperTypes="#//Literal"> | ||
176 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="value" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBigDecimal"/> | ||
177 | </eClassifiers> | ||
178 | <eClassifiers xsi:type="ecore:EClass" name="InfinityLiteral" eSuperTypes="#//Literal"/> | ||
179 | <eClassifiers xsi:type="ecore:EClass" name="EmptyIntervalLiteral" eSuperTypes="#//Literal"/> | ||
180 | <eClassifiers xsi:type="ecore:EClass" name="StringLiteral" eSuperTypes="#//Literal"> | ||
181 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="value" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/> | ||
182 | </eClassifiers> | ||
183 | <eClassifiers xsi:type="ecore:EClass" name="ClassDefinition" eSuperTypes="#//Statement"> | ||
184 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="abstract" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/> | ||
185 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/> | ||
186 | <eStructuralFeatures xsi:type="ecore:EReference" name="superclasses" unique="false" | ||
187 | upperBound="-1" eType="#//NamedElement"/> | ||
188 | <eStructuralFeatures xsi:type="ecore:EReference" name="members" upperBound="-1" | ||
189 | eType="#//MemberDefinition" containment="true"/> | ||
190 | </eClassifiers> | ||
191 | <eClassifiers xsi:type="ecore:EClass" name="MemberDefinition"> | ||
192 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="containment" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/> | ||
193 | <eStructuralFeatures xsi:type="ecore:EReference" name="type" eType="#//NamedElement"/> | ||
194 | <eStructuralFeatures xsi:type="ecore:EReference" name="multiplicity" eType="#//Multiplicity" | ||
195 | containment="true"/> | ||
196 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/> | ||
197 | <eStructuralFeatures xsi:type="ecore:EReference" name="opposite" eType="#//NamedElement"/> | ||
198 | </eClassifiers> | ||
199 | <eClassifiers xsi:type="ecore:EClass" name="Multiplicity"/> | ||
200 | <eClassifiers xsi:type="ecore:EClass" name="ManyMultiplicity" eSuperTypes="#//Multiplicity"/> | ||
201 | <eClassifiers xsi:type="ecore:EClass" name="ExactMultiplicity" eSuperTypes="#//Multiplicity"> | ||
202 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="multiplicity" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/> | ||
203 | </eClassifiers> | ||
204 | <eClassifiers xsi:type="ecore:EClass" name="BoundedMultiplicity" eSuperTypes="#//Multiplicity"> | ||
205 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="lowerBound" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/> | ||
206 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="upperBound" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/> | ||
207 | </eClassifiers> | ||
208 | <eClassifiers xsi:type="ecore:EClass" name="ScopeDefinition" eSuperTypes="#//Statement"> | ||
209 | <eStructuralFeatures xsi:type="ecore:EReference" name="type" eType="#//NamedElement"/> | ||
210 | </eClassifiers> | ||
211 | <eClassifiers xsi:type="ecore:EClass" name="ExactScopeDefinition" eSuperTypes="#//ScopeDefinition"> | ||
212 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="exactScope" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/> | ||
213 | </eClassifiers> | ||
214 | <eClassifiers xsi:type="ecore:EClass" name="BoundedScopeDefinition" eSuperTypes="#//ScopeDefinition"> | ||
215 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="lowerBound" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/> | ||
216 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="upperBound" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/> | ||
217 | </eClassifiers> | ||
218 | <eClassifiers xsi:type="ecore:EClass" name="LowerBoundedScopeDefinition" eSuperTypes="#//ScopeDefinition"> | ||
219 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="lowerBound" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/> | ||
220 | </eClassifiers> | ||
221 | <eClassifiers xsi:type="ecore:EEnum" name="ObjectiveKind"> | ||
222 | <eLiterals name="MINIMIZE" literal="minimize"/> | ||
223 | <eLiterals name="MAXIMIZE" value="1" literal="maximize"/> | ||
224 | </eClassifiers> | ||
225 | <eClassifiers xsi:type="ecore:EClass" name="ObjectiveDefinition" eSuperTypes="#//Statement"> | ||
226 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="kind" eType="#//ObjectiveKind"/> | ||
227 | <eStructuralFeatures xsi:type="ecore:EReference" name="objective" eType="#//Expression" | ||
228 | containment="true"/> | ||
229 | </eClassifiers> | ||
230 | <eClassifiers xsi:type="ecore:EClass" name="Interpretation" eSuperTypes="#//Statement"> | ||
231 | <eStructuralFeatures xsi:type="ecore:EReference" name="body" eType="#//Expression" | ||
232 | containment="true"/> | ||
233 | <eStructuralFeatures xsi:type="ecore:EReference" name="range" eType="#//Expression" | ||
234 | containment="true"/> | ||
235 | </eClassifiers> | ||
236 | <eClassifiers xsi:type="ecore:EClass" name="Variable" eSuperTypes="#//NamedElement"> | ||
237 | <eStructuralFeatures xsi:type="ecore:EReference" name="type" eType="#//NamedElement"/> | ||
238 | </eClassifiers> | ||
239 | <eClassifiers xsi:type="ecore:EClass" name="Disjunction" eSuperTypes="#//Expression"> | ||
240 | <eStructuralFeatures xsi:type="ecore:EReference" name="children" upperBound="-1" | ||
241 | eType="#//Expression" containment="true"/> | ||
242 | </eClassifiers> | ||
243 | <eClassifiers xsi:type="ecore:EClass" name="Switch" eSuperTypes="#//Expression"> | ||
244 | <eStructuralFeatures xsi:type="ecore:EReference" name="cases" upperBound="-1" | ||
245 | eType="#//Case" containment="true"/> | ||
246 | </eClassifiers> | ||
247 | <eClassifiers xsi:type="ecore:EClass" name="Conjunction" eSuperTypes="#//Expression"> | ||
248 | <eStructuralFeatures xsi:type="ecore:EReference" name="children" upperBound="-1" | ||
249 | eType="#//Expression" containment="true"/> | ||
250 | </eClassifiers> | ||
251 | <eClassifiers xsi:type="ecore:EClass" name="Comparison" eSuperTypes="#//Expression"> | ||
252 | <eStructuralFeatures xsi:type="ecore:EReference" name="left" eType="#//Expression" | ||
253 | containment="true"/> | ||
254 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="op" eType="#//BinaryOperator"/> | ||
255 | <eStructuralFeatures xsi:type="ecore:EReference" name="right" eType="#//Expression" | ||
256 | containment="true"/> | ||
257 | </eClassifiers> | ||
258 | <eClassifiers xsi:type="ecore:EClass" name="BinaryExpression" eSuperTypes="#//Expression"> | ||
259 | <eStructuralFeatures xsi:type="ecore:EReference" name="left" eType="#//Expression" | ||
260 | containment="true"/> | ||
261 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="op" eType="#//BinaryOperator"/> | ||
262 | <eStructuralFeatures xsi:type="ecore:EReference" name="right" eType="#//Expression" | ||
263 | containment="true"/> | ||
264 | </eClassifiers> | ||
265 | <eClassifiers xsi:type="ecore:EClass" name="CastExpression" eSuperTypes="#//Expression"> | ||
266 | <eStructuralFeatures xsi:type="ecore:EReference" name="body" eType="#//Expression" | ||
267 | containment="true"/> | ||
268 | <eStructuralFeatures xsi:type="ecore:EReference" name="type" eType="#//NamedElement"/> | ||
269 | </eClassifiers> | ||
270 | <eClassifiers xsi:type="ecore:EClass" name="UnaryExpression" eSuperTypes="#//Expression"> | ||
271 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="op" eType="#//UnaryOp"/> | ||
272 | <eStructuralFeatures xsi:type="ecore:EReference" name="body" eType="#//Expression" | ||
273 | containment="true"/> | ||
274 | </eClassifiers> | ||
275 | <eClassifiers xsi:type="ecore:EClass" name="Node" eSuperTypes="#//NamedElement"> | ||
276 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="withId" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/> | ||
277 | </eClassifiers> | ||
278 | <eClassifiers xsi:type="ecore:EClass" name="Functor" abstract="true" eSuperTypes="#//NamedElement"> | ||
279 | <eStructuralFeatures xsi:type="ecore:EReference" name="parameters" upperBound="-1" | ||
280 | eType="#//Variable"/> | ||
281 | </eClassifiers> | ||
282 | <eClassifiers xsi:type="ecore:EClass" name="Predicate" eSuperTypes="#//Functor"/> | ||
283 | <eClassifiers xsi:type="ecore:EClass" name="Metric" eSuperTypes="#//Functor"> | ||
284 | <eStructuralFeatures xsi:type="ecore:EReference" name="returnType" eType="#//NamedElement"/> | ||
285 | </eClassifiers> | ||
286 | <eClassifiers xsi:type="ecore:EEnum" name="Quantifier"> | ||
287 | <eLiterals name="EXISTS"/> | ||
288 | <eLiterals name="FORALL" value="1"/> | ||
289 | <eLiterals name="COUNT" value="2"/> | ||
290 | </eClassifiers> | ||
291 | </ecore:EPackage> | ||