aboutsummaryrefslogtreecommitdiffstats
path: root/subprojects/language-model/src/main/resources/model/problem.ecore
diff options
context:
space:
mode:
authorLibravatar Kristóf Marussy <kristof@marussy.com>2022-11-19 21:39:00 +0100
committerLibravatar Kristóf Marussy <kristof@marussy.com>2022-11-22 16:40:03 +0100
commit3aa4a2b58221a3e83b17d0c04c9a6e9c41e5500c (patch)
tree1e25f513e3b34b2ea29dbcc6cc3795e5927a1362 /subprojects/language-model/src/main/resources/model/problem.ecore
parentfeat(language): numeric expressions (diff)
downloadrefinery-3aa4a2b58221a3e83b17d0c04c9a6e9c41e5500c.tar.gz
refinery-3aa4a2b58221a3e83b17d0c04c9a6e9c41e5500c.tar.zst
refinery-3aa4a2b58221a3e83b17d0c04c9a6e9c41e5500c.zip
refactor: separate primitive types from nodes
Diffstat (limited to 'subprojects/language-model/src/main/resources/model/problem.ecore')
-rw-r--r--subprojects/language-model/src/main/resources/model/problem.ecore53
1 files changed, 31 insertions, 22 deletions
diff --git a/subprojects/language-model/src/main/resources/model/problem.ecore b/subprojects/language-model/src/main/resources/model/problem.ecore
index 3214da65..314639c1 100644
--- a/subprojects/language-model/src/main/resources/model/problem.ecore
+++ b/subprojects/language-model/src/main/resources/model/problem.ecore
@@ -9,14 +9,14 @@
9 </eClassifiers> 9 </eClassifiers>
10 <eClassifiers xsi:type="ecore:EClass" name="ClassDeclaration" eSuperTypes="#//Statement #//Relation"> 10 <eClassifiers xsi:type="ecore:EClass" name="ClassDeclaration" eSuperTypes="#//Statement #//Relation">
11 <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"/>
12 <eStructuralFeatures xsi:type="ecore:EReference" name="referenceDeclarations" 12 <eStructuralFeatures xsi:type="ecore:EReference" name="featureDeclarations" upperBound="-1"
13 upperBound="-1" eType="#//ReferenceDeclaration" containment="true"/> 13 eType="#//FeatureDeclaration" containment="true"/>
14 <eStructuralFeatures xsi:type="ecore:EReference" name="newNode" eType="#//Node" 14 <eStructuralFeatures xsi:type="ecore:EReference" name="newNode" eType="#//Node"
15 transient="true" containment="true"/> 15 transient="true" containment="true"/>
16 <eStructuralFeatures xsi:type="ecore:EReference" name="superTypes" upperBound="-1" 16 <eStructuralFeatures xsi:type="ecore:EReference" name="superTypes" upperBound="-1"
17 eType="#//Relation"/> 17 eType="#//Relation"/>
18 </eClassifiers> 18 </eClassifiers>
19 <eClassifiers xsi:type="ecore:EClass" name="ReferenceDeclaration" eSuperTypes="#//Relation"> 19 <eClassifiers xsi:type="ecore:EClass" name="ReferenceDeclaration" eSuperTypes="#//FeatureDeclaration">
20 <eStructuralFeatures xsi:type="ecore:EReference" name="opposite" eType="#//ReferenceDeclaration"/> 20 <eStructuralFeatures xsi:type="ecore:EReference" name="opposite" eType="#//ReferenceDeclaration"/>
21 <eStructuralFeatures xsi:type="ecore:EReference" name="multiplicity" eType="#//Multiplicity" 21 <eStructuralFeatures xsi:type="ecore:EReference" name="multiplicity" eType="#//Multiplicity"
22 containment="true"/> 22 containment="true"/>
@@ -49,12 +49,13 @@
49 eType="#//ImplicitVariable" transient="true" containment="true"/> 49 eType="#//ImplicitVariable" transient="true" containment="true"/>
50 </eClassifiers> 50 </eClassifiers>
51 <eClassifiers xsi:type="ecore:EClass" name="Assertion" eSuperTypes="#//Statement"> 51 <eClassifiers xsi:type="ecore:EClass" name="Assertion" eSuperTypes="#//Statement">
52 <eStructuralFeatures xsi:type="ecore:EAttribute" name="value" eType="#//LogicValue"/>
53 <eStructuralFeatures xsi:type="ecore:EReference" name="arguments" upperBound="-1" 52 <eStructuralFeatures xsi:type="ecore:EReference" name="arguments" upperBound="-1"
54 eType="#//AssertionArgument" containment="true"/> 53 eType="#//AssertionArgument" containment="true"/>
55 <eStructuralFeatures xsi:type="ecore:EAttribute" name="default" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean" 54 <eStructuralFeatures xsi:type="ecore:EAttribute" name="default" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
56 defaultValueLiteral="false"/> 55 defaultValueLiteral="false"/>
57 <eStructuralFeatures xsi:type="ecore:EReference" name="relation" eType="#//Relation"/> 56 <eStructuralFeatures xsi:type="ecore:EReference" name="relation" eType="#//Relation"/>
57 <eStructuralFeatures xsi:type="ecore:EReference" name="value" eType="#//AssertionValue"
58 containment="true"/>
58 </eClassifiers> 59 </eClassifiers>
59 <eClassifiers xsi:type="ecore:EClass" name="Node" eSuperTypes="#//VariableOrNode"/> 60 <eClassifiers xsi:type="ecore:EClass" name="Node" eSuperTypes="#//VariableOrNode"/>
60 <eClassifiers xsi:type="ecore:EEnum" name="LogicValue"> 61 <eClassifiers xsi:type="ecore:EEnum" name="LogicValue">
@@ -91,7 +92,7 @@
91 eType="#//Node" containment="true"/> 92 eType="#//Node" containment="true"/>
92 </eClassifiers> 93 </eClassifiers>
93 <eClassifiers xsi:type="ecore:EClass" name="VariableOrNode" abstract="true" eSuperTypes="#//NamedElement"/> 94 <eClassifiers xsi:type="ecore:EClass" name="VariableOrNode" abstract="true" eSuperTypes="#//NamedElement"/>
94 <eClassifiers xsi:type="ecore:EClass" name="Constant" abstract="true"/> 95 <eClassifiers xsi:type="ecore:EClass" name="Constant" abstract="true" eSuperTypes="#//Expr"/>
95 <eClassifiers xsi:type="ecore:EClass" name="IntConstant" eSuperTypes="#//Constant"> 96 <eClassifiers xsi:type="ecore:EClass" name="IntConstant" eSuperTypes="#//Constant">
96 <eStructuralFeatures xsi:type="ecore:EAttribute" name="intValue" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt" 97 <eStructuralFeatures xsi:type="ecore:EAttribute" name="intValue" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"
97 defaultValueLiteral="0"/> 98 defaultValueLiteral="0"/>
@@ -107,17 +108,6 @@
107 <eStructuralFeatures xsi:type="ecore:EReference" name="node" eType="#//Node"/> 108 <eStructuralFeatures xsi:type="ecore:EReference" name="node" eType="#//Node"/>
108 </eClassifiers> 109 </eClassifiers>
109 <eClassifiers xsi:type="ecore:EClass" name="AssertionArgument" abstract="true"/> 110 <eClassifiers xsi:type="ecore:EClass" name="AssertionArgument" abstract="true"/>
110 <eClassifiers xsi:type="ecore:EClass" name="ConstantAssertionArgument" eSuperTypes="#//AssertionArgument">
111 <eStructuralFeatures xsi:type="ecore:EReference" name="constant" eType="#//Constant"
112 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"/>
115 </eClassifiers>
116 <eClassifiers xsi:type="ecore:EClass" name="NodeValueAssertion" eSuperTypes="#//Statement">
117 <eStructuralFeatures xsi:type="ecore:EReference" name="node" eType="#//Node"/>
118 <eStructuralFeatures xsi:type="ecore:EReference" name="value" eType="#//Constant"
119 containment="true"/>
120 </eClassifiers>
121 <eClassifiers xsi:type="ecore:EClass" name="IndividualDeclaration" eSuperTypes="#//Statement"> 111 <eClassifiers xsi:type="ecore:EClass" name="IndividualDeclaration" eSuperTypes="#//Statement">
122 <eStructuralFeatures xsi:type="ecore:EReference" name="nodes" upperBound="-1" 112 <eStructuralFeatures xsi:type="ecore:EReference" name="nodes" upperBound="-1"
123 eType="#//Node" containment="true"/> 113 eType="#//Node" containment="true"/>
@@ -168,9 +158,9 @@
168 <eLiterals name="GREATER_EQ" value="3"/> 158 <eLiterals name="GREATER_EQ" value="3"/>
169 <eLiterals name="EQ" value="4"/> 159 <eLiterals name="EQ" value="4"/>
170 <eLiterals name="NOT_EQ" value="5"/> 160 <eLiterals name="NOT_EQ" value="5"/>
161 <eLiterals name="IN" value="6"/>
171 </eClassifiers> 162 </eClassifiers>
172 <eClassifiers xsi:type="ecore:EEnum" name="ReferenceKind"> 163 <eClassifiers xsi:type="ecore:EEnum" name="ReferenceKind">
173 <eLiterals name="DEFAULT"/>
174 <eLiterals name="REFERENCE" value="1"/> 164 <eLiterals name="REFERENCE" value="1"/>
175 <eLiterals name="CONTAINMENT" value="2"/> 165 <eLiterals name="CONTAINMENT" value="2"/>
176 <eLiterals name="CONTAINER" value="3"/> 166 <eLiterals name="CONTAINER" value="3"/>
@@ -205,6 +195,8 @@
205 <eLiterals name="MUL" value="2"/> 195 <eLiterals name="MUL" value="2"/>
206 <eLiterals name="DIV" value="3"/> 196 <eLiterals name="DIV" value="3"/>
207 <eLiterals name="POW" value="4"/> 197 <eLiterals name="POW" value="4"/>
198 <eLiterals name="MEET" value="5"/>
199 <eLiterals name="JOIN" value="6"/>
208 </eClassifiers> 200 </eClassifiers>
209 <eClassifiers xsi:type="ecore:EClass" name="ArithmeticUnaryExpr" eSuperTypes="#//UnaryExpr"> 201 <eClassifiers xsi:type="ecore:EClass" name="ArithmeticUnaryExpr" eSuperTypes="#//UnaryExpr">
210 <eStructuralFeatures xsi:type="ecore:EAttribute" name="op" eType="#//UnaryOp"/> 202 <eStructuralFeatures xsi:type="ecore:EAttribute" name="op" eType="#//UnaryOp"/>
@@ -225,16 +217,12 @@
225 <eClassifiers xsi:type="ecore:EClass" name="ComparisonExpr" eSuperTypes="#//BinaryExpr"> 217 <eClassifiers xsi:type="ecore:EClass" name="ComparisonExpr" eSuperTypes="#//BinaryExpr">
226 <eStructuralFeatures xsi:type="ecore:EAttribute" name="op" eType="#//ComparisonOp"/> 218 <eStructuralFeatures xsi:type="ecore:EAttribute" name="op" eType="#//ComparisonOp"/>
227 </eClassifiers> 219 </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" 220 <eClassifiers xsi:type="ecore:EClass" name="QuantifiedUnaryExpr" abstract="true"
233 eSuperTypes="#//ExistentialQuantifier #//UnaryExpr"/> 221 eSuperTypes="#//ExistentialQuantifier #//UnaryExpr"/>
234 <eClassifiers xsi:type="ecore:EClass" name="FunctionDefinition" eSuperTypes="#//ParametricDefinition #//Relation"> 222 <eClassifiers xsi:type="ecore:EClass" name="FunctionDefinition" eSuperTypes="#//ParametricDefinition #//Relation">
235 <eStructuralFeatures xsi:type="ecore:EReference" name="cases" upperBound="-1" 223 <eStructuralFeatures xsi:type="ecore:EReference" name="cases" upperBound="-1"
236 eType="#//Case" containment="true"/> 224 eType="#//Case" containment="true"/>
237 <eStructuralFeatures xsi:type="ecore:EReference" name="functionType" eType="#//Relation"/> 225 <eStructuralFeatures xsi:type="ecore:EAttribute" name="functionType" eType="#//PrimitiveType"/>
238 </eClassifiers> 226 </eClassifiers>
239 <eClassifiers xsi:type="ecore:EClass" name="Case" abstract="true"/> 227 <eClassifiers xsi:type="ecore:EClass" name="Case" abstract="true"/>
240 <eClassifiers xsi:type="ecore:EClass" name="Conjunction" eSuperTypes="#//Case #//ExistentialQuantifier"> 228 <eClassifiers xsi:type="ecore:EClass" name="Conjunction" eSuperTypes="#//Case #//ExistentialQuantifier">
@@ -256,4 +244,25 @@
256 <eClassifiers xsi:type="ecore:EClass" name="ModalExpr" eSuperTypes="#//UnaryExpr"> 244 <eClassifiers xsi:type="ecore:EClass" name="ModalExpr" eSuperTypes="#//UnaryExpr">
257 <eStructuralFeatures xsi:type="ecore:EAttribute" name="modality" eType="#//Modality"/> 245 <eStructuralFeatures xsi:type="ecore:EAttribute" name="modality" eType="#//Modality"/>
258 </eClassifiers> 246 </eClassifiers>
247 <eClassifiers xsi:type="ecore:EClass" name="RangeExpr" eSuperTypes="#//BinaryExpr"/>
248 <eClassifiers xsi:type="ecore:EClass" name="InfConstant" eSuperTypes="#//Constant"/>
249 <eClassifiers xsi:type="ecore:EClass" name="FeatureDeclaration" abstract="true"
250 eSuperTypes="#//Relation"/>
251 <eClassifiers xsi:type="ecore:EClass" name="AttributeDeclaration" eSuperTypes="#//FeatureDeclaration">
252 <eStructuralFeatures xsi:type="ecore:EAttribute" name="attributeType" eType="#//PrimitiveType"/>
253 </eClassifiers>
254 <eClassifiers xsi:type="ecore:EClass" name="FlagDeclaration" eSuperTypes="#//FeatureDeclaration"/>
255 <eClassifiers xsi:type="ecore:EEnum" name="PrimitiveType">
256 <eLiterals name="INT"/>
257 <eLiterals name="REAL" value="1"/>
258 <eLiterals name="STRING" value="2"/>
259 </eClassifiers>
260 <eClassifiers xsi:type="ecore:EClass" name="AssertionValue" abstract="true"/>
261 <eClassifiers xsi:type="ecore:EClass" name="LogicAssertionValue" eSuperTypes="#//AssertionValue">
262 <eStructuralFeatures xsi:type="ecore:EAttribute" name="logicValue" eType="#//LogicValue"/>
263 </eClassifiers>
264 <eClassifiers xsi:type="ecore:EClass" name="ExprAssertionValue" eSuperTypes="#//AssertionValue">
265 <eStructuralFeatures xsi:type="ecore:EReference" name="body" eType="#//Expr" containment="true"/>
266 <eStructuralFeatures xsi:type="ecore:EAttribute" name="range" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
267 </eClassifiers>
259</ecore:EPackage> 268</ecore:EPackage>