diff options
author | Kristóf Marussy <kristof@marussy.com> | 2024-01-31 02:00:09 +0100 |
---|---|---|
committer | Kristóf Marussy <kristof@marussy.com> | 2024-01-31 18:45:13 +0100 |
commit | c63126d2f1ce5f571c316b37e00fb43d2da7c7d3 (patch) | |
tree | 16e9dd04624565f7c9ccedd17749a9f264e89cb0 /subprojects/language-model/src/main/resources | |
parent | fix(build): avoid cyclic dependency (diff) | |
download | refinery-c63126d2f1ce5f571c316b37e00fb43d2da7c7d3.tar.gz refinery-c63126d2f1ce5f571c316b37e00fb43d2da7c7d3.tar.zst refinery-c63126d2f1ce5f571c316b37e00fb43d2da7c7d3.zip |
refactor(language): module and node declarations
* New default file extension: .refinery (.problem is also supported).
* Add module keyword for self-contained modules.
* Rename indiv declarations to atom declaration.
* Add node and multi declarations for explicitly declared nodes and
multi-objects, respectively.
Diffstat (limited to 'subprojects/language-model/src/main/resources')
-rw-r--r-- | subprojects/language-model/src/main/resources/model/problem.ecore | 13 | ||||
-rw-r--r-- | subprojects/language-model/src/main/resources/model/problem.genmodel | 15 |
2 files changed, 25 insertions, 3 deletions
diff --git a/subprojects/language-model/src/main/resources/model/problem.ecore b/subprojects/language-model/src/main/resources/model/problem.ecore index 74229a89..aa05a2fe 100644 --- a/subprojects/language-model/src/main/resources/model/problem.ecore +++ b/subprojects/language-model/src/main/resources/model/problem.ecore | |||
@@ -6,6 +6,7 @@ | |||
6 | eType="#//Node" transient="true" containment="true"/> | 6 | eType="#//Node" transient="true" containment="true"/> |
7 | <eStructuralFeatures xsi:type="ecore:EReference" name="statements" upperBound="-1" | 7 | <eStructuralFeatures xsi:type="ecore:EReference" name="statements" upperBound="-1" |
8 | eType="#//Statement" containment="true"/> | 8 | eType="#//Statement" containment="true"/> |
9 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="kind" eType="#//ModuleKind"/> | ||
9 | </eClassifiers> | 10 | </eClassifiers> |
10 | <eClassifiers xsi:type="ecore:EClass" name="ClassDeclaration" eSuperTypes="#//Statement #//Relation"> | 11 | <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"/> | 12 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="abstract" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/> |
@@ -109,9 +110,10 @@ | |||
109 | <eStructuralFeatures xsi:type="ecore:EReference" name="node" eType="#//Node"/> | 110 | <eStructuralFeatures xsi:type="ecore:EReference" name="node" eType="#//Node"/> |
110 | </eClassifiers> | 111 | </eClassifiers> |
111 | <eClassifiers xsi:type="ecore:EClass" name="AssertionArgument" abstract="true"/> | 112 | <eClassifiers xsi:type="ecore:EClass" name="AssertionArgument" abstract="true"/> |
112 | <eClassifiers xsi:type="ecore:EClass" name="IndividualDeclaration" eSuperTypes="#//Statement"> | 113 | <eClassifiers xsi:type="ecore:EClass" name="NodeDeclaration" eSuperTypes="#//Statement"> |
113 | <eStructuralFeatures xsi:type="ecore:EReference" name="nodes" upperBound="-1" | 114 | <eStructuralFeatures xsi:type="ecore:EReference" name="nodes" upperBound="-1" |
114 | eType="#//Node" containment="true"/> | 115 | eType="#//Node" containment="true"/> |
116 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="kind" eType="#//NodeKind"/> | ||
115 | </eClassifiers> | 117 | </eClassifiers> |
116 | <eClassifiers xsi:type="ecore:EClass" name="WildcardAssertionArgument" eSuperTypes="#//AssertionArgument"/> | 118 | <eClassifiers xsi:type="ecore:EClass" name="WildcardAssertionArgument" eSuperTypes="#//AssertionArgument"/> |
117 | <eClassifiers xsi:type="ecore:EClass" name="ParametricDefinition" abstract="true" | 119 | <eClassifiers xsi:type="ecore:EClass" name="ParametricDefinition" abstract="true" |
@@ -259,4 +261,13 @@ | |||
259 | <eClassifiers xsi:type="ecore:EClass" name="LogicConstant" eSuperTypes="#//Constant"> | 261 | <eClassifiers xsi:type="ecore:EClass" name="LogicConstant" eSuperTypes="#//Constant"> |
260 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="logicValue" eType="#//LogicValue"/> | 262 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="logicValue" eType="#//LogicValue"/> |
261 | </eClassifiers> | 263 | </eClassifiers> |
264 | <eClassifiers xsi:type="ecore:EEnum" name="ModuleKind"> | ||
265 | <eLiterals name="PROBLEM"/> | ||
266 | <eLiterals name="MODULE" value="1"/> | ||
267 | </eClassifiers> | ||
268 | <eClassifiers xsi:type="ecore:EEnum" name="NodeKind"> | ||
269 | <eLiterals name="NODE"/> | ||
270 | <eLiterals name="ATOM" value="1"/> | ||
271 | <eLiterals name="MULTI" value="2"/> | ||
272 | </eClassifiers> | ||
262 | </ecore:EPackage> | 273 | </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 b5aa81c4..be8b62eb 100644 --- a/subprojects/language-model/src/main/resources/model/problem.genmodel +++ b/subprojects/language-model/src/main/resources/model/problem.genmodel | |||
@@ -64,9 +64,19 @@ | |||
64 | <genEnumLiterals ecoreEnumLiteral="problem.ecore#//PrimitiveType/REAL"/> | 64 | <genEnumLiterals ecoreEnumLiteral="problem.ecore#//PrimitiveType/REAL"/> |
65 | <genEnumLiterals ecoreEnumLiteral="problem.ecore#//PrimitiveType/STRING"/> | 65 | <genEnumLiterals ecoreEnumLiteral="problem.ecore#//PrimitiveType/STRING"/> |
66 | </genEnums> | 66 | </genEnums> |
67 | <genEnums typeSafeEnumCompatible="false" ecoreEnum="problem.ecore#//ModuleKind"> | ||
68 | <genEnumLiterals ecoreEnumLiteral="problem.ecore#//ModuleKind/PROBLEM"/> | ||
69 | <genEnumLiterals ecoreEnumLiteral="problem.ecore#//ModuleKind/MODULE"/> | ||
70 | </genEnums> | ||
71 | <genEnums typeSafeEnumCompatible="false" ecoreEnum="problem.ecore#//NodeKind"> | ||
72 | <genEnumLiterals ecoreEnumLiteral="problem.ecore#//NodeKind/NODE"/> | ||
73 | <genEnumLiterals ecoreEnumLiteral="problem.ecore#//NodeKind/ATOM"/> | ||
74 | <genEnumLiterals ecoreEnumLiteral="problem.ecore#//NodeKind/MULTI"/> | ||
75 | </genEnums> | ||
67 | <genClasses ecoreClass="problem.ecore#//Problem"> | 76 | <genClasses ecoreClass="problem.ecore#//Problem"> |
68 | <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference problem.ecore#//Problem/nodes"/> | 77 | <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference problem.ecore#//Problem/nodes"/> |
69 | <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference problem.ecore#//Problem/statements"/> | 78 | <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference problem.ecore#//Problem/statements"/> |
79 | <genFeatures createChild="false" ecoreFeature="ecore:EAttribute problem.ecore#//Problem/kind"/> | ||
70 | </genClasses> | 80 | </genClasses> |
71 | <genClasses ecoreClass="problem.ecore#//ClassDeclaration"> | 81 | <genClasses ecoreClass="problem.ecore#//ClassDeclaration"> |
72 | <genFeatures createChild="false" ecoreFeature="ecore:EAttribute problem.ecore#//ClassDeclaration/abstract"/> | 82 | <genFeatures createChild="false" ecoreFeature="ecore:EAttribute problem.ecore#//ClassDeclaration/abstract"/> |
@@ -144,8 +154,9 @@ | |||
144 | <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference problem.ecore#//NodeAssertionArgument/node"/> | 154 | <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference problem.ecore#//NodeAssertionArgument/node"/> |
145 | </genClasses> | 155 | </genClasses> |
146 | <genClasses ecoreClass="problem.ecore#//AssertionArgument"/> | 156 | <genClasses ecoreClass="problem.ecore#//AssertionArgument"/> |
147 | <genClasses ecoreClass="problem.ecore#//IndividualDeclaration"> | 157 | <genClasses ecoreClass="problem.ecore#//NodeDeclaration"> |
148 | <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference problem.ecore#//IndividualDeclaration/nodes"/> | 158 | <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference problem.ecore#//NodeDeclaration/nodes"/> |
159 | <genFeatures createChild="false" ecoreFeature="ecore:EAttribute problem.ecore#//NodeDeclaration/kind"/> | ||
149 | </genClasses> | 160 | </genClasses> |
150 | <genClasses ecoreClass="problem.ecore#//WildcardAssertionArgument"/> | 161 | <genClasses ecoreClass="problem.ecore#//WildcardAssertionArgument"/> |
151 | <genClasses ecoreClass="problem.ecore#//ParametricDefinition"> | 162 | <genClasses ecoreClass="problem.ecore#//ParametricDefinition"> |