diff options
author | 2022-08-10 01:00:09 +0200 | |
---|---|---|
committer | 2022-08-10 01:00:09 +0200 | |
commit | 10b6c4fa59abcde40dfd3c548c4df4a8b08a21d8 (patch) | |
tree | 95ebb690ff1da41033891cdeb85a799f0cfc53f3 /subprojects/language-model/src | |
parent | refactor: direct predicates (diff) | |
download | refinery-10b6c4fa59abcde40dfd3c548c4df4a8b08a21d8.tar.gz refinery-10b6c4fa59abcde40dfd3c548c4df4a8b08a21d8.tar.zst refinery-10b6c4fa59abcde40dfd3c548c4df4a8b08a21d8.zip |
feat(language): add support for count operator
Diffstat (limited to 'subprojects/language-model/src')
-rw-r--r-- | subprojects/language-model/src/main/resources/model/problem.ecore | 16 | ||||
-rw-r--r-- | subprojects/language-model/src/main/resources/model/problem.genmodel | 17 |
2 files changed, 30 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 16683952..5f42341d 100644 --- a/subprojects/language-model/src/main/resources/model/problem.ecore +++ b/subprojects/language-model/src/main/resources/model/problem.ecore | |||
@@ -48,7 +48,7 @@ | |||
48 | eType="#//Argument" containment="true"/> | 48 | eType="#//Argument" containment="true"/> |
49 | </eClassifiers> | 49 | </eClassifiers> |
50 | <eClassifiers xsi:type="ecore:EClass" name="ImplicitVariable" eSuperTypes="#//Variable"/> | 50 | <eClassifiers xsi:type="ecore:EClass" name="ImplicitVariable" eSuperTypes="#//Variable"/> |
51 | <eClassifiers xsi:type="ecore:EClass" name="NegativeLiteral" eSuperTypes="#//ExistentialQuantifier #//Literal"> | 51 | <eClassifiers xsi:type="ecore:EClass" name="CompoundLiteral" abstract="true" eSuperTypes="#//ExistentialQuantifier #//Literal"> |
52 | <eStructuralFeatures xsi:type="ecore:EReference" name="atom" eType="#//Atom" containment="true"/> | 52 | <eStructuralFeatures xsi:type="ecore:EReference" name="atom" eType="#//Atom" containment="true"/> |
53 | </eClassifiers> | 53 | </eClassifiers> |
54 | <eClassifiers xsi:type="ecore:EClass" name="ExistentialQuantifier" abstract="true" | 54 | <eClassifiers xsi:type="ecore:EClass" name="ExistentialQuantifier" abstract="true" |
@@ -177,4 +177,18 @@ | |||
177 | <eLiterals name="MUST" value="2"/> | 177 | <eLiterals name="MUST" value="2"/> |
178 | <eLiterals name="CURRENT" value="3"/> | 178 | <eLiterals name="CURRENT" value="3"/> |
179 | </eClassifiers> | 179 | </eClassifiers> |
180 | <eClassifiers xsi:type="ecore:EClass" name="NegativeLiteral" eSuperTypes="#//CompoundLiteral"/> | ||
181 | <eClassifiers xsi:type="ecore:EClass" name="CountLiteral" eSuperTypes="#//CompoundLiteral"> | ||
182 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="op" eType="#//ComparisonOp"/> | ||
183 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="threshold" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt" | ||
184 | defaultValueLiteral="0"/> | ||
185 | </eClassifiers> | ||
186 | <eClassifiers xsi:type="ecore:EEnum" name="ComparisonOp"> | ||
187 | <eLiterals name="LESS"/> | ||
188 | <eLiterals name="LESS_EQ" value="1"/> | ||
189 | <eLiterals name="GREATER" value="2"/> | ||
190 | <eLiterals name="GREATER_EQ" value="3"/> | ||
191 | <eLiterals name="EQ" value="4"/> | ||
192 | <eLiterals name="NOT_EQ" value="5"/> | ||
193 | </eClassifiers> | ||
180 | </ecore:EPackage> | 194 | </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 5a1da4d4..60dec198 100644 --- a/subprojects/language-model/src/main/resources/model/problem.genmodel +++ b/subprojects/language-model/src/main/resources/model/problem.genmodel | |||
@@ -22,6 +22,14 @@ | |||
22 | <genEnumLiterals ecoreEnumLiteral="problem.ecore#//Modality/MUST"/> | 22 | <genEnumLiterals ecoreEnumLiteral="problem.ecore#//Modality/MUST"/> |
23 | <genEnumLiterals ecoreEnumLiteral="problem.ecore#//Modality/CURRENT"/> | 23 | <genEnumLiterals ecoreEnumLiteral="problem.ecore#//Modality/CURRENT"/> |
24 | </genEnums> | 24 | </genEnums> |
25 | <genEnums typeSafeEnumCompatible="false" ecoreEnum="problem.ecore#//ComparisonOp"> | ||
26 | <genEnumLiterals ecoreEnumLiteral="problem.ecore#//ComparisonOp/LESS"/> | ||
27 | <genEnumLiterals ecoreEnumLiteral="problem.ecore#//ComparisonOp/LESS_EQ"/> | ||
28 | <genEnumLiterals ecoreEnumLiteral="problem.ecore#//ComparisonOp/GREATER"/> | ||
29 | <genEnumLiterals ecoreEnumLiteral="problem.ecore#//ComparisonOp/GREATER_EQ"/> | ||
30 | <genEnumLiterals ecoreEnumLiteral="problem.ecore#//ComparisonOp/EQ"/> | ||
31 | <genEnumLiterals ecoreEnumLiteral="problem.ecore#//ComparisonOp/NOT_EQ"/> | ||
32 | </genEnums> | ||
25 | <genClasses ecoreClass="problem.ecore#//Problem"> | 33 | <genClasses ecoreClass="problem.ecore#//Problem"> |
26 | <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference problem.ecore#//Problem/nodes"/> | 34 | <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference problem.ecore#//Problem/nodes"/> |
27 | <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference problem.ecore#//Problem/statements"/> | 35 | <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference problem.ecore#//Problem/statements"/> |
@@ -61,8 +69,8 @@ | |||
61 | <genFeatures children="true" createChild="true" propertySortChoices="true" ecoreFeature="ecore:EReference problem.ecore#//Atom/arguments"/> | 69 | <genFeatures children="true" createChild="true" propertySortChoices="true" ecoreFeature="ecore:EReference problem.ecore#//Atom/arguments"/> |
62 | </genClasses> | 70 | </genClasses> |
63 | <genClasses ecoreClass="problem.ecore#//ImplicitVariable"/> | 71 | <genClasses ecoreClass="problem.ecore#//ImplicitVariable"/> |
64 | <genClasses ecoreClass="problem.ecore#//NegativeLiteral"> | 72 | <genClasses ecoreClass="problem.ecore#//CompoundLiteral"> |
65 | <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference problem.ecore#//NegativeLiteral/atom"/> | 73 | <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference problem.ecore#//CompoundLiteral/atom"/> |
66 | </genClasses> | 74 | </genClasses> |
67 | <genClasses ecoreClass="problem.ecore#//ExistentialQuantifier"> | 75 | <genClasses ecoreClass="problem.ecore#//ExistentialQuantifier"> |
68 | <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference problem.ecore#//ExistentialQuantifier/implicitVariables"/> | 76 | <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference problem.ecore#//ExistentialQuantifier/implicitVariables"/> |
@@ -153,5 +161,10 @@ | |||
153 | <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference problem.ecore#//NewAction/parent"/> | 161 | <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference problem.ecore#//NewAction/parent"/> |
154 | </genClasses> | 162 | </genClasses> |
155 | <genClasses ecoreClass="problem.ecore#//NewVariable"/> | 163 | <genClasses ecoreClass="problem.ecore#//NewVariable"/> |
164 | <genClasses ecoreClass="problem.ecore#//NegativeLiteral"/> | ||
165 | <genClasses ecoreClass="problem.ecore#//CountLiteral"> | ||
166 | <genFeatures createChild="false" ecoreFeature="ecore:EAttribute problem.ecore#//CountLiteral/op"/> | ||
167 | <genFeatures createChild="false" ecoreFeature="ecore:EAttribute problem.ecore#//CountLiteral/threshold"/> | ||
168 | </genClasses> | ||
156 | </genPackages> | 169 | </genPackages> |
157 | </genmodel:GenModel> | 170 | </genmodel:GenModel> |