summaryrefslogtreecommitdiffstats
path: root/subprojects/language-model/src/main/resources/model
diff options
context:
space:
mode:
authorLibravatar Kristóf Marussy <kristof@marussy.com>2024-02-20 01:27:51 +0100
committerLibravatar Kristóf Marussy <kristof@marussy.com>2024-04-07 14:55:46 +0200
commit01960723de5ca42e28dc8f162d4fe9e24c23c0b8 (patch)
treec391738a378d079d4c3b1aa8966c6b66d60ee4c9 /subprojects/language-model/src/main/resources/model
parentfeat: subproject for z3 integration (diff)
downloadrefinery-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.ecore23
-rw-r--r--subprojects/language-model/src/main/resources/model/problem.genmodel14
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>