diff options
author | Kristóf Marussy <kristof@marussy.com> | 2024-02-20 01:27:51 +0100 |
---|---|---|
committer | Kristóf Marussy <kristof@marussy.com> | 2024-04-07 14:55:46 +0200 |
commit | 01960723de5ca42e28dc8f162d4fe9e24c23c0b8 (patch) | |
tree | c391738a378d079d4c3b1aa8966c6b66d60ee4c9 /subprojects/language-model/src/main/resources/model | |
parent | feat: subproject for z3 integration (diff) | |
download | refinery-01960723de5ca42e28dc8f162d4fe9e24c23c0b8.tar.gz refinery-01960723de5ca42e28dc8f162d4fe9e24c23c0b8.tar.zst refinery-01960723de5ca42e28dc8f162d4fe9e24c23c0b8.zip |
feat(language): datatype declarations
Also changes ReferenceDeclaration to declare attributes, since reference and
attributes can only be distinguished at linking time.
Diffstat (limited to 'subprojects/language-model/src/main/resources/model')
-rw-r--r-- | subprojects/language-model/src/main/resources/model/problem.ecore | 23 | ||||
-rw-r--r-- | subprojects/language-model/src/main/resources/model/problem.genmodel | 14 |
2 files changed, 10 insertions, 27 deletions
diff --git a/subprojects/language-model/src/main/resources/model/problem.ecore b/subprojects/language-model/src/main/resources/model/problem.ecore index 97355516..bac409f9 100644 --- a/subprojects/language-model/src/main/resources/model/problem.ecore +++ b/subprojects/language-model/src/main/resources/model/problem.ecore | |||
@@ -13,13 +13,13 @@ | |||
13 | <eClassifiers xsi:type="ecore:EClass" name="ClassDeclaration" eSuperTypes="#//Statement #//Relation"> | 13 | <eClassifiers xsi:type="ecore:EClass" name="ClassDeclaration" eSuperTypes="#//Statement #//Relation"> |
14 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="abstract" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/> | 14 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="abstract" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/> |
15 | <eStructuralFeatures xsi:type="ecore:EReference" name="featureDeclarations" upperBound="-1" | 15 | <eStructuralFeatures xsi:type="ecore:EReference" name="featureDeclarations" upperBound="-1" |
16 | eType="#//FeatureDeclaration" containment="true"/> | 16 | eType="#//ReferenceDeclaration" containment="true"/> |
17 | <eStructuralFeatures xsi:type="ecore:EReference" name="newNode" eType="#//Node" | 17 | <eStructuralFeatures xsi:type="ecore:EReference" name="newNode" eType="#//Node" |
18 | transient="true" containment="true"/> | 18 | transient="true" containment="true"/> |
19 | <eStructuralFeatures xsi:type="ecore:EReference" name="superTypes" upperBound="-1" | 19 | <eStructuralFeatures xsi:type="ecore:EReference" name="superTypes" upperBound="-1" |
20 | eType="#//Relation"/> | 20 | eType="#//Relation"/> |
21 | </eClassifiers> | 21 | </eClassifiers> |
22 | <eClassifiers xsi:type="ecore:EClass" name="ReferenceDeclaration" eSuperTypes="#//FeatureDeclaration"> | 22 | <eClassifiers xsi:type="ecore:EClass" name="ReferenceDeclaration" eSuperTypes="#//Relation"> |
23 | <eStructuralFeatures xsi:type="ecore:EReference" name="opposite" eType="#//ReferenceDeclaration"/> | 23 | <eStructuralFeatures xsi:type="ecore:EReference" name="opposite" eType="#//ReferenceDeclaration"/> |
24 | <eStructuralFeatures xsi:type="ecore:EReference" name="multiplicity" eType="#//Multiplicity" | 24 | <eStructuralFeatures xsi:type="ecore:EReference" name="multiplicity" eType="#//Multiplicity" |
25 | containment="true"/> | 25 | containment="true"/> |
@@ -170,8 +170,9 @@ | |||
170 | <eLiterals name="ABS_NOT_EQ" value="10"/> | 170 | <eLiterals name="ABS_NOT_EQ" value="10"/> |
171 | </eClassifiers> | 171 | </eClassifiers> |
172 | <eClassifiers xsi:type="ecore:EEnum" name="ReferenceKind"> | 172 | <eClassifiers xsi:type="ecore:EEnum" name="ReferenceKind"> |
173 | <eLiterals name="REFERENCE" value="1"/> | 173 | <eLiterals name="DEFAULT" value="1"/> |
174 | <eLiterals name="CONTAINMENT" value="2"/> | 174 | <eLiterals name="REFERENCE" value="2"/> |
175 | <eLiterals name="CONTAINMENT" value="3"/> | ||
175 | <eLiterals name="CONTAINER" value="3"/> | 176 | <eLiterals name="CONTAINER" value="3"/> |
176 | </eClassifiers> | 177 | </eClassifiers> |
177 | <eClassifiers xsi:type="ecore:EClass" name="Expr" abstract="true"/> | 178 | <eClassifiers xsi:type="ecore:EClass" name="Expr" abstract="true"/> |
@@ -225,7 +226,7 @@ | |||
225 | <eClassifiers xsi:type="ecore:EClass" name="FunctionDefinition" eSuperTypes="#//ParametricDefinition #//Relation"> | 226 | <eClassifiers xsi:type="ecore:EClass" name="FunctionDefinition" eSuperTypes="#//ParametricDefinition #//Relation"> |
226 | <eStructuralFeatures xsi:type="ecore:EReference" name="cases" upperBound="-1" | 227 | <eStructuralFeatures xsi:type="ecore:EReference" name="cases" upperBound="-1" |
227 | eType="#//Case" containment="true"/> | 228 | eType="#//Case" containment="true"/> |
228 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="functionType" eType="#//PrimitiveType"/> | 229 | <eStructuralFeatures xsi:type="ecore:EReference" name="functionType" eType="#//DatatypeDeclaration"/> |
229 | </eClassifiers> | 230 | </eClassifiers> |
230 | <eClassifiers xsi:type="ecore:EClass" name="Case" abstract="true"/> | 231 | <eClassifiers xsi:type="ecore:EClass" name="Case" abstract="true"/> |
231 | <eClassifiers xsi:type="ecore:EClass" name="Conjunction" eSuperTypes="#//Case #//ExistentialQuantifier"> | 232 | <eClassifiers xsi:type="ecore:EClass" name="Conjunction" eSuperTypes="#//Case #//ExistentialQuantifier"> |
@@ -249,17 +250,6 @@ | |||
249 | </eClassifiers> | 250 | </eClassifiers> |
250 | <eClassifiers xsi:type="ecore:EClass" name="RangeExpr" eSuperTypes="#//BinaryExpr"/> | 251 | <eClassifiers xsi:type="ecore:EClass" name="RangeExpr" eSuperTypes="#//BinaryExpr"/> |
251 | <eClassifiers xsi:type="ecore:EClass" name="InfConstant" eSuperTypes="#//Constant"/> | 252 | <eClassifiers xsi:type="ecore:EClass" name="InfConstant" eSuperTypes="#//Constant"/> |
252 | <eClassifiers xsi:type="ecore:EClass" name="FeatureDeclaration" abstract="true" | ||
253 | eSuperTypes="#//Relation"/> | ||
254 | <eClassifiers xsi:type="ecore:EClass" name="AttributeDeclaration" eSuperTypes="#//FeatureDeclaration"> | ||
255 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="attributeType" eType="#//PrimitiveType"/> | ||
256 | </eClassifiers> | ||
257 | <eClassifiers xsi:type="ecore:EClass" name="FlagDeclaration" eSuperTypes="#//FeatureDeclaration"/> | ||
258 | <eClassifiers xsi:type="ecore:EEnum" name="PrimitiveType"> | ||
259 | <eLiterals name="INT"/> | ||
260 | <eLiterals name="REAL" value="1"/> | ||
261 | <eLiterals name="STRING" value="2"/> | ||
262 | </eClassifiers> | ||
263 | <eClassifiers xsi:type="ecore:EClass" name="LogicConstant" eSuperTypes="#//Constant"> | 253 | <eClassifiers xsi:type="ecore:EClass" name="LogicConstant" eSuperTypes="#//Constant"> |
264 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="logicValue" eType="#//LogicValue"/> | 254 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="logicValue" eType="#//LogicValue"/> |
265 | </eClassifiers> | 255 | </eClassifiers> |
@@ -276,4 +266,5 @@ | |||
276 | <eStructuralFeatures xsi:type="ecore:EReference" name="importedModule" eType="#//Problem"/> | 266 | <eStructuralFeatures xsi:type="ecore:EReference" name="importedModule" eType="#//Problem"/> |
277 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="alias" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/> | 267 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="alias" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/> |
278 | </eClassifiers> | 268 | </eClassifiers> |
269 | <eClassifiers xsi:type="ecore:EClass" name="DatatypeDeclaration" eSuperTypes="#//Relation #//Statement"/> | ||
279 | </ecore:EPackage> | 270 | </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 23458ee5..29df79cf 100644 --- a/subprojects/language-model/src/main/resources/model/problem.genmodel +++ b/subprojects/language-model/src/main/resources/model/problem.genmodel | |||
@@ -36,6 +36,7 @@ | |||
36 | <genEnumLiterals ecoreEnumLiteral="problem.ecore#//ComparisonOp/ABS_NOT_EQ"/> | 36 | <genEnumLiterals ecoreEnumLiteral="problem.ecore#//ComparisonOp/ABS_NOT_EQ"/> |
37 | </genEnums> | 37 | </genEnums> |
38 | <genEnums typeSafeEnumCompatible="false" ecoreEnum="problem.ecore#//ReferenceKind"> | 38 | <genEnums typeSafeEnumCompatible="false" ecoreEnum="problem.ecore#//ReferenceKind"> |
39 | <genEnumLiterals ecoreEnumLiteral="problem.ecore#//ReferenceKind/DEFAULT"/> | ||
39 | <genEnumLiterals ecoreEnumLiteral="problem.ecore#//ReferenceKind/REFERENCE"/> | 40 | <genEnumLiterals ecoreEnumLiteral="problem.ecore#//ReferenceKind/REFERENCE"/> |
40 | <genEnumLiterals ecoreEnumLiteral="problem.ecore#//ReferenceKind/CONTAINMENT"/> | 41 | <genEnumLiterals ecoreEnumLiteral="problem.ecore#//ReferenceKind/CONTAINMENT"/> |
41 | <genEnumLiterals ecoreEnumLiteral="problem.ecore#//ReferenceKind/CONTAINER"/> | 42 | <genEnumLiterals ecoreEnumLiteral="problem.ecore#//ReferenceKind/CONTAINER"/> |
@@ -59,11 +60,6 @@ | |||
59 | <genEnumLiterals ecoreEnumLiteral="problem.ecore#//AggregationOp/MIN"/> | 60 | <genEnumLiterals ecoreEnumLiteral="problem.ecore#//AggregationOp/MIN"/> |
60 | <genEnumLiterals ecoreEnumLiteral="problem.ecore#//AggregationOp/MAX"/> | 61 | <genEnumLiterals ecoreEnumLiteral="problem.ecore#//AggregationOp/MAX"/> |
61 | </genEnums> | 62 | </genEnums> |
62 | <genEnums typeSafeEnumCompatible="false" ecoreEnum="problem.ecore#//PrimitiveType"> | ||
63 | <genEnumLiterals ecoreEnumLiteral="problem.ecore#//PrimitiveType/INT"/> | ||
64 | <genEnumLiterals ecoreEnumLiteral="problem.ecore#//PrimitiveType/REAL"/> | ||
65 | <genEnumLiterals ecoreEnumLiteral="problem.ecore#//PrimitiveType/STRING"/> | ||
66 | </genEnums> | ||
67 | <genEnums typeSafeEnumCompatible="false" ecoreEnum="problem.ecore#//ModuleKind"> | 63 | <genEnums typeSafeEnumCompatible="false" ecoreEnum="problem.ecore#//ModuleKind"> |
68 | <genEnumLiterals ecoreEnumLiteral="problem.ecore#//ModuleKind/PROBLEM"/> | 64 | <genEnumLiterals ecoreEnumLiteral="problem.ecore#//ModuleKind/PROBLEM"/> |
69 | <genEnumLiterals ecoreEnumLiteral="problem.ecore#//ModuleKind/MODULE"/> | 65 | <genEnumLiterals ecoreEnumLiteral="problem.ecore#//ModuleKind/MODULE"/> |
@@ -210,7 +206,7 @@ | |||
210 | <genClasses ecoreClass="problem.ecore#//QuantifiedUnaryExpr"/> | 206 | <genClasses ecoreClass="problem.ecore#//QuantifiedUnaryExpr"/> |
211 | <genClasses ecoreClass="problem.ecore#//FunctionDefinition"> | 207 | <genClasses ecoreClass="problem.ecore#//FunctionDefinition"> |
212 | <genFeatures children="true" createChild="true" propertySortChoices="true" ecoreFeature="ecore:EReference problem.ecore#//FunctionDefinition/cases"/> | 208 | <genFeatures children="true" createChild="true" propertySortChoices="true" ecoreFeature="ecore:EReference problem.ecore#//FunctionDefinition/cases"/> |
213 | <genFeatures createChild="false" ecoreFeature="ecore:EAttribute problem.ecore#//FunctionDefinition/functionType"/> | 209 | <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference problem.ecore#//FunctionDefinition/functionType"/> |
214 | </genClasses> | 210 | </genClasses> |
215 | <genClasses ecoreClass="problem.ecore#//Case"/> | 211 | <genClasses ecoreClass="problem.ecore#//Case"/> |
216 | <genClasses ecoreClass="problem.ecore#//Conjunction"> | 212 | <genClasses ecoreClass="problem.ecore#//Conjunction"> |
@@ -231,11 +227,6 @@ | |||
231 | </genClasses> | 227 | </genClasses> |
232 | <genClasses ecoreClass="problem.ecore#//RangeExpr"/> | 228 | <genClasses ecoreClass="problem.ecore#//RangeExpr"/> |
233 | <genClasses ecoreClass="problem.ecore#//InfConstant"/> | 229 | <genClasses ecoreClass="problem.ecore#//InfConstant"/> |
234 | <genClasses ecoreClass="problem.ecore#//FeatureDeclaration"/> | ||
235 | <genClasses ecoreClass="problem.ecore#//AttributeDeclaration"> | ||
236 | <genFeatures createChild="false" ecoreFeature="ecore:EAttribute problem.ecore#//AttributeDeclaration/attributeType"/> | ||
237 | </genClasses> | ||
238 | <genClasses ecoreClass="problem.ecore#//FlagDeclaration"/> | ||
239 | <genClasses ecoreClass="problem.ecore#//LogicConstant"> | 230 | <genClasses ecoreClass="problem.ecore#//LogicConstant"> |
240 | <genFeatures createChild="false" ecoreFeature="ecore:EAttribute problem.ecore#//LogicConstant/logicValue"/> | 231 | <genFeatures createChild="false" ecoreFeature="ecore:EAttribute problem.ecore#//LogicConstant/logicValue"/> |
241 | </genClasses> | 232 | </genClasses> |
@@ -243,5 +234,6 @@ | |||
243 | <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference problem.ecore#//ImportStatement/importedModule"/> | 234 | <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference problem.ecore#//ImportStatement/importedModule"/> |
244 | <genFeatures createChild="false" ecoreFeature="ecore:EAttribute problem.ecore#//ImportStatement/alias"/> | 235 | <genFeatures createChild="false" ecoreFeature="ecore:EAttribute problem.ecore#//ImportStatement/alias"/> |
245 | </genClasses> | 236 | </genClasses> |
237 | <genClasses ecoreClass="problem.ecore#//DatatypeDeclaration"/> | ||
246 | </genPackages> | 238 | </genPackages> |
247 | </genmodel:GenModel> | 239 | </genmodel:GenModel> |