aboutsummaryrefslogtreecommitdiffstats
path: root/subprojects/language-model/src/main/resources/model/problem.ecore
diff options
context:
space:
mode:
Diffstat (limited to 'subprojects/language-model/src/main/resources/model/problem.ecore')
-rw-r--r--subprojects/language-model/src/main/resources/model/problem.ecore191
1 files changed, 191 insertions, 0 deletions
diff --git a/subprojects/language-model/src/main/resources/model/problem.ecore b/subprojects/language-model/src/main/resources/model/problem.ecore
new file mode 100644
index 00000000..582f67c8
--- /dev/null
+++ b/subprojects/language-model/src/main/resources/model/problem.ecore
@@ -0,0 +1,191 @@
1<?xml version="1.0" encoding="UTF-8"?>
2<ecore:EPackage xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
3 xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" name="problem" nsURI="https://refinery.tools/emf/2021/Problem" nsPrefix="problem">
4 <eClassifiers xsi:type="ecore:EClass" name="Problem" eSuperTypes="#//NamedElement">
5 <eStructuralFeatures xsi:type="ecore:EReference" name="nodes" upperBound="-1"
6 eType="#//Node" transient="true" containment="true"/>
7 <eStructuralFeatures xsi:type="ecore:EReference" name="statements" upperBound="-1"
8 eType="#//Statement" containment="true"/>
9 </eClassifiers>
10 <eClassifiers xsi:type="ecore:EClass" name="Relation" abstract="true" eSuperTypes="#//NamedElement"/>
11 <eClassifiers xsi:type="ecore:EClass" name="ClassDeclaration" eSuperTypes="#//Relation #//Statement">
12 <eStructuralFeatures xsi:type="ecore:EAttribute" name="abstract" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
13 <eStructuralFeatures xsi:type="ecore:EReference" name="superTypes" upperBound="-1"
14 eType="#//Relation"/>
15 <eStructuralFeatures xsi:type="ecore:EReference" name="referenceDeclarations"
16 upperBound="-1" eType="#//ReferenceDeclaration" containment="true"/>
17 <eStructuralFeatures xsi:type="ecore:EReference" name="newNode" eType="#//Node"
18 transient="true" containment="true"/>
19 </eClassifiers>
20 <eClassifiers xsi:type="ecore:EClass" name="ReferenceDeclaration" eSuperTypes="#//Relation">
21 <eStructuralFeatures xsi:type="ecore:EReference" name="referenceType" eType="#//Relation"/>
22 <eStructuralFeatures xsi:type="ecore:EReference" name="opposite" eType="#//ReferenceDeclaration"/>
23 <eStructuralFeatures xsi:type="ecore:EAttribute" name="containment" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
24 <eStructuralFeatures xsi:type="ecore:EReference" name="multiplicity" eType="#//Multiplicity"
25 containment="true"/>
26 </eClassifiers>
27 <eClassifiers xsi:type="ecore:EClass" name="NamedElement" abstract="true">
28 <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
29 </eClassifiers>
30 <eClassifiers xsi:type="ecore:EClass" name="PredicateDefinition" eSuperTypes="#//Relation #//ParametricDefinition">
31 <eStructuralFeatures xsi:type="ecore:EAttribute" name="error" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
32 <eStructuralFeatures xsi:type="ecore:EAttribute" name="kind" eType="#//PredicateKind"
33 defaultValueLiteral="PARTIAL"/>
34 </eClassifiers>
35 <eClassifiers xsi:type="ecore:EClass" name="Parameter" eSuperTypes="#//Variable">
36 <eStructuralFeatures xsi:type="ecore:EReference" name="parameterType" eType="#//Relation"/>
37 </eClassifiers>
38 <eClassifiers xsi:type="ecore:EClass" name="Variable" abstract="true" eSuperTypes="#//VariableOrNode"/>
39 <eClassifiers xsi:type="ecore:EClass" name="Conjunction" eSuperTypes="#//ExistentialQuantifier">
40 <eStructuralFeatures xsi:type="ecore:EReference" name="literals" upperBound="-1"
41 eType="#//Literal" containment="true"/>
42 </eClassifiers>
43 <eClassifiers xsi:type="ecore:EClass" name="Literal" abstract="true"/>
44 <eClassifiers xsi:type="ecore:EClass" name="Atom" eSuperTypes="#//Literal">
45 <eStructuralFeatures xsi:type="ecore:EReference" name="relation" eType="#//Relation"/>
46 <eStructuralFeatures xsi:type="ecore:EAttribute" name="transitiveClosure" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
47 <eStructuralFeatures xsi:type="ecore:EReference" name="arguments" upperBound="-1"
48 eType="#//Argument" containment="true"/>
49 </eClassifiers>
50 <eClassifiers xsi:type="ecore:EClass" name="ImplicitVariable" eSuperTypes="#//Variable"/>
51 <eClassifiers xsi:type="ecore:EClass" name="NegativeLiteral" eSuperTypes="#//ExistentialQuantifier #//CompoundLiteral"/>
52 <eClassifiers xsi:type="ecore:EClass" name="ExistentialQuantifier" abstract="true"
53 interface="true">
54 <eStructuralFeatures xsi:type="ecore:EReference" name="implicitVariables" upperBound="-1"
55 eType="#//ImplicitVariable" transient="true" containment="true"/>
56 </eClassifiers>
57 <eClassifiers xsi:type="ecore:EClass" name="Assertion" eSuperTypes="#//Statement">
58 <eStructuralFeatures xsi:type="ecore:EReference" name="relation" eType="#//Relation"/>
59 <eStructuralFeatures xsi:type="ecore:EAttribute" name="value" eType="#//LogicValue"/>
60 <eStructuralFeatures xsi:type="ecore:EReference" name="arguments" upperBound="-1"
61 eType="#//AssertionArgument" containment="true"/>
62 <eStructuralFeatures xsi:type="ecore:EAttribute" name="default" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
63 defaultValueLiteral="false"/>
64 </eClassifiers>
65 <eClassifiers xsi:type="ecore:EClass" name="Node" eSuperTypes="#//VariableOrNode"/>
66 <eClassifiers xsi:type="ecore:EEnum" name="LogicValue">
67 <eLiterals name="TRUE" literal="TRUE"/>
68 <eLiterals name="FALSE" value="1"/>
69 <eLiterals name="UNKNOWN" value="2"/>
70 <eLiterals name="ERROR" value="3"/>
71 </eClassifiers>
72 <eClassifiers xsi:type="ecore:EClass" name="ScopeDeclaration" eSuperTypes="#//Statement">
73 <eStructuralFeatures xsi:type="ecore:EReference" name="typeScopes" upperBound="-1"
74 eType="#//TypeScope" containment="true"/>
75 </eClassifiers>
76 <eClassifiers xsi:type="ecore:EClass" name="Statement" abstract="true" interface="true"/>
77 <eClassifiers xsi:type="ecore:EClass" name="TypeScope">
78 <eStructuralFeatures xsi:type="ecore:EReference" name="targetType" eType="#//ClassDeclaration"/>
79 <eStructuralFeatures xsi:type="ecore:EAttribute" name="increment" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
80 <eStructuralFeatures xsi:type="ecore:EReference" name="multiplicity" eType="#//Multiplicity"
81 containment="true"/>
82 </eClassifiers>
83 <eClassifiers xsi:type="ecore:EClass" name="Multiplicity" abstract="true"/>
84 <eClassifiers xsi:type="ecore:EClass" name="RangeMultiplicity" eSuperTypes="#//Multiplicity">
85 <eStructuralFeatures xsi:type="ecore:EAttribute" name="lowerBound" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"
86 defaultValueLiteral="0"/>
87 <eStructuralFeatures xsi:type="ecore:EAttribute" name="upperBound" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"
88 defaultValueLiteral="-1"/>
89 </eClassifiers>
90 <eClassifiers xsi:type="ecore:EClass" name="ExactMultiplicity" eSuperTypes="#//Multiplicity">
91 <eStructuralFeatures xsi:type="ecore:EAttribute" name="exactValue" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"
92 defaultValueLiteral="1"/>
93 </eClassifiers>
94 <eClassifiers xsi:type="ecore:EClass" name="UnboundedMultiplicity" eSuperTypes="#//Multiplicity"/>
95 <eClassifiers xsi:type="ecore:EClass" name="VariableOrNodeArgument" eSuperTypes="#//Argument">
96 <eStructuralFeatures xsi:type="ecore:EReference" name="variableOrNode" eType="#//VariableOrNode"/>
97 <eStructuralFeatures xsi:type="ecore:EReference" name="singletonVariable" eType="#//ImplicitVariable"
98 transient="true" containment="true"/>
99 </eClassifiers>
100 <eClassifiers xsi:type="ecore:EClass" name="EnumDeclaration" eSuperTypes="#//Relation #//Statement">
101 <eStructuralFeatures xsi:type="ecore:EReference" name="literals" upperBound="-1"
102 eType="#//Node" containment="true"/>
103 </eClassifiers>
104 <eClassifiers xsi:type="ecore:EClass" name="VariableOrNode" abstract="true" eSuperTypes="#//NamedElement"/>
105 <eClassifiers xsi:type="ecore:EClass" name="Constant" abstract="true"/>
106 <eClassifiers xsi:type="ecore:EClass" name="IntConstant" eSuperTypes="#//Constant">
107 <eStructuralFeatures xsi:type="ecore:EAttribute" name="intValue" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"
108 defaultValueLiteral="0"/>
109 </eClassifiers>
110 <eClassifiers xsi:type="ecore:EClass" name="RealConstant" eSuperTypes="#//Constant">
111 <eStructuralFeatures xsi:type="ecore:EAttribute" name="realValue" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble"
112 defaultValueLiteral="0.0"/>
113 </eClassifiers>
114 <eClassifiers xsi:type="ecore:EClass" name="StringConstant" eSuperTypes="#//Constant">
115 <eStructuralFeatures xsi:type="ecore:EAttribute" name="stringValue" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
116 </eClassifiers>
117 <eClassifiers xsi:type="ecore:EClass" name="ConstantArgument" eSuperTypes="#//Argument">
118 <eStructuralFeatures xsi:type="ecore:EReference" name="constant" eType="#//Constant"
119 containment="true"/>
120 </eClassifiers>
121 <eClassifiers xsi:type="ecore:EClass" name="Argument" abstract="true"/>
122 <eClassifiers xsi:type="ecore:EClass" name="NodeAssertionArgument" eSuperTypes="#//AssertionArgument">
123 <eStructuralFeatures xsi:type="ecore:EReference" name="node" eType="#//Node"/>
124 </eClassifiers>
125 <eClassifiers xsi:type="ecore:EClass" name="AssertionArgument" abstract="true"/>
126 <eClassifiers xsi:type="ecore:EClass" name="ConstantAssertionArgument" eSuperTypes="#//AssertionArgument">
127 <eStructuralFeatures xsi:type="ecore:EReference" name="constant" eType="#//Constant"
128 containment="true"/>
129 </eClassifiers>
130 <eClassifiers xsi:type="ecore:EClass" name="NodeValueAssertion" eSuperTypes="#//Statement">
131 <eStructuralFeatures xsi:type="ecore:EReference" name="node" eType="#//Node"/>
132 <eStructuralFeatures xsi:type="ecore:EReference" name="value" eType="#//Constant"
133 containment="true"/>
134 </eClassifiers>
135 <eClassifiers xsi:type="ecore:EClass" name="IndividualDeclaration" eSuperTypes="#//Statement">
136 <eStructuralFeatures xsi:type="ecore:EReference" name="nodes" upperBound="-1"
137 eType="#//Node" containment="true"/>
138 </eClassifiers>
139 <eClassifiers xsi:type="ecore:EClass" name="WildcardAssertionArgument" eSuperTypes="#//AssertionArgument"/>
140 <eClassifiers xsi:type="ecore:EClass" name="ParametricDefinition" abstract="true"
141 interface="true" eSuperTypes="#//Statement">
142 <eStructuralFeatures xsi:type="ecore:EReference" name="bodies" upperBound="-1"
143 eType="#//Conjunction" containment="true"/>
144 <eStructuralFeatures xsi:type="ecore:EReference" name="parameters" upperBound="-1"
145 eType="#//Parameter" containment="true"/>
146 </eClassifiers>
147 <eClassifiers xsi:type="ecore:EClass" name="RuleDefinition" eSuperTypes="#//ParametricDefinition #//NamedElement">
148 <eStructuralFeatures xsi:type="ecore:EAttribute" name="kind" eType="#//RuleKind"
149 defaultValueLiteral="DIRECT"/>
150 <eStructuralFeatures xsi:type="ecore:EReference" name="action" eType="#//Action"
151 containment="true"/>
152 </eClassifiers>
153 <eClassifiers xsi:type="ecore:EClass" name="Action">
154 <eStructuralFeatures xsi:type="ecore:EReference" name="actionLiterals" upperBound="-1"
155 eType="#//ActionLiteral" containment="true"/>
156 </eClassifiers>
157 <eClassifiers xsi:type="ecore:EClass" name="ActionLiteral" abstract="true"/>
158 <eClassifiers xsi:type="ecore:EClass" name="ValueActionLiteral" eSuperTypes="#//ActionLiteral">
159 <eStructuralFeatures xsi:type="ecore:EReference" name="atom" eType="#//Atom" containment="true"/>
160 <eStructuralFeatures xsi:type="ecore:EAttribute" name="value" eType="#//LogicValue"
161 defaultValueLiteral="TRUE"/>
162 <eStructuralFeatures xsi:type="ecore:EAttribute" name="refinement" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
163 defaultValueLiteral="FALSE"/>
164 </eClassifiers>
165 <eClassifiers xsi:type="ecore:EClass" name="DeleteActionLiteral" eSuperTypes="#//ActionLiteral">
166 <eStructuralFeatures xsi:type="ecore:EReference" name="variableOrNode" eType="#//VariableOrNode"/>
167 </eClassifiers>
168 <eClassifiers xsi:type="ecore:EClass" name="NewActionLiteral" eSuperTypes="#//ActionLiteral">
169 <eStructuralFeatures xsi:type="ecore:EReference" name="variable" eType="#//NewVariable"
170 containment="true"/>
171 </eClassifiers>
172 <eClassifiers xsi:type="ecore:EClass" name="NewVariable" eSuperTypes="#//Variable"/>
173 <eClassifiers xsi:type="ecore:EClass" name="CompoundLiteral" abstract="true" eSuperTypes="#//Literal">
174 <eStructuralFeatures xsi:type="ecore:EReference" name="atom" eType="#//Atom" containment="true"/>
175 </eClassifiers>
176 <eClassifiers xsi:type="ecore:EClass" name="ValueLiteral" eSuperTypes="#//CompoundLiteral">
177 <eStructuralFeatures xsi:type="ecore:EReference" name="values" upperBound="-1"
178 eType="#//LogicConstant" containment="true"/>
179 <eStructuralFeatures xsi:type="ecore:EAttribute" name="refinement" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
180 </eClassifiers>
181 <eClassifiers xsi:type="ecore:EClass" name="LogicConstant">
182 <eStructuralFeatures xsi:type="ecore:EAttribute" name="value" eType="#//LogicValue"/>
183 </eClassifiers>
184 <eClassifiers xsi:type="ecore:EEnum" name="PredicateKind">
185 <eLiterals name="PARTIAL"/>
186 <eLiterals name="DIRECT" value="1"/>
187 </eClassifiers>
188 <eClassifiers xsi:type="ecore:EEnum" name="RuleKind">
189 <eLiterals name="DIRECT"/>
190 </eClassifiers>
191</ecore:EPackage>