diff options
author | 2021-10-12 17:09:32 +0200 | |
---|---|---|
committer | 2021-10-20 18:54:11 +0200 | |
commit | 97b13eee9a8053afa8fd29ecc8887394040332d3 (patch) | |
tree | c4d37ca2ed70d5f55181f746a3516a0e5a5d4a9d /language-model/src/main | |
parent | Merge pull request #3 from golej-marci/language-to-store (diff) | |
download | refinery-97b13eee9a8053afa8fd29ecc8887394040332d3.tar.gz refinery-97b13eee9a8053afa8fd29ecc8887394040332d3.tar.zst refinery-97b13eee9a8053afa8fd29ecc8887394040332d3.zip |
Add syntax for direct rules and direct predicates
Xtext and Class diagram extended.
Diffstat (limited to 'language-model/src/main')
-rw-r--r-- | language-model/src/main/resources/model/problem.ecore | 335 | ||||
-rw-r--r-- | language-model/src/main/resources/model/problem.genmodel | 292 |
2 files changed, 356 insertions, 271 deletions
diff --git a/language-model/src/main/resources/model/problem.ecore b/language-model/src/main/resources/model/problem.ecore index e86f0afd..775d124d 100644 --- a/language-model/src/main/resources/model/problem.ecore +++ b/language-model/src/main/resources/model/problem.ecore | |||
@@ -1,144 +1,191 @@ | |||
1 | <?xml version="1.0" encoding="UTF-8"?> | 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" | 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"> | 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"> | 4 | <eClassifiers xsi:type="ecore:EClass" name="Problem" eSuperTypes="#//NamedElement"> |
5 | <eStructuralFeatures xsi:type="ecore:EReference" name="nodes" upperBound="-1" | 5 | <eStructuralFeatures xsi:type="ecore:EReference" name="nodes" upperBound="-1" |
6 | eType="#//Node" containment="true"/> | 6 | eType="#//Node" 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 | </eClassifiers> | 9 | </eClassifiers> |
10 | <eClassifiers xsi:type="ecore:EClass" name="Relation" abstract="true" eSuperTypes="#//NamedElement"/> | 10 | <eClassifiers xsi:type="ecore:EClass" name="Relation" abstract="true" eSuperTypes="#//NamedElement"/> |
11 | <eClassifiers xsi:type="ecore:EClass" name="ClassDeclaration" eSuperTypes="#//Relation #//Statement"> | 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"/> | 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" | 13 | <eStructuralFeatures xsi:type="ecore:EReference" name="superTypes" upperBound="-1" |
14 | eType="#//Relation"/> | 14 | eType="#//Relation"/> |
15 | <eStructuralFeatures xsi:type="ecore:EReference" name="referenceDeclarations" | 15 | <eStructuralFeatures xsi:type="ecore:EReference" name="referenceDeclarations" |
16 | upperBound="-1" eType="#//ReferenceDeclaration" containment="true"/> | 16 | upperBound="-1" 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 | containment="true"/> | 18 | containment="true"/> |
19 | </eClassifiers> | 19 | </eClassifiers> |
20 | <eClassifiers xsi:type="ecore:EClass" name="ReferenceDeclaration" eSuperTypes="#//Relation"> | 20 | <eClassifiers xsi:type="ecore:EClass" name="ReferenceDeclaration" eSuperTypes="#//Relation"> |
21 | <eStructuralFeatures xsi:type="ecore:EReference" name="referenceType" eType="#//Relation"/> | 21 | <eStructuralFeatures xsi:type="ecore:EReference" name="referenceType" eType="#//Relation"/> |
22 | <eStructuralFeatures xsi:type="ecore:EReference" name="opposite" eType="#//ReferenceDeclaration"/> | 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"/> | 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" | 24 | <eStructuralFeatures xsi:type="ecore:EReference" name="multiplicity" eType="#//Multiplicity" |
25 | containment="true"/> | 25 | containment="true"/> |
26 | </eClassifiers> | 26 | </eClassifiers> |
27 | <eClassifiers xsi:type="ecore:EClass" name="NamedElement" abstract="true"> | 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"/> | 28 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/> |
29 | </eClassifiers> | 29 | </eClassifiers> |
30 | <eClassifiers xsi:type="ecore:EClass" name="PredicateDefinition" eSuperTypes="#//Relation #//Statement"> | 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"/> | 31 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="error" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/> |
32 | <eStructuralFeatures xsi:type="ecore:EReference" name="parameters" upperBound="-1" | 32 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="kind" eType="#//PredicateKind" |
33 | eType="#//Parameter" containment="true"/> | 33 | defaultValueLiteral="PARTIAL"/> |
34 | <eStructuralFeatures xsi:type="ecore:EReference" name="bodies" upperBound="-1" | 34 | </eClassifiers> |
35 | eType="#//Conjunction" containment="true"/> | 35 | <eClassifiers xsi:type="ecore:EClass" name="Parameter" eSuperTypes="#//Variable"> |
36 | </eClassifiers> | 36 | <eStructuralFeatures xsi:type="ecore:EReference" name="parameterType" eType="#//Relation"/> |
37 | <eClassifiers xsi:type="ecore:EClass" name="Parameter" eSuperTypes="#//Variable"> | 37 | </eClassifiers> |
38 | <eStructuralFeatures xsi:type="ecore:EReference" name="parameterType" eType="#//Relation"/> | 38 | <eClassifiers xsi:type="ecore:EClass" name="Variable" abstract="true" eSuperTypes="#//VariableOrNode"/> |
39 | </eClassifiers> | 39 | <eClassifiers xsi:type="ecore:EClass" name="Conjunction" eSuperTypes="#//ExistentialQuantifier"> |
40 | <eClassifiers xsi:type="ecore:EClass" name="Variable" abstract="true" eSuperTypes="#//VariableOrNode"/> | 40 | <eStructuralFeatures xsi:type="ecore:EReference" name="literals" upperBound="-1" |
41 | <eClassifiers xsi:type="ecore:EClass" name="Conjunction" eSuperTypes="#//ExistentialQuantifier"> | 41 | eType="#//Literal" containment="true"/> |
42 | <eStructuralFeatures xsi:type="ecore:EReference" name="literals" upperBound="-1" | 42 | </eClassifiers> |
43 | eType="#//Literal" containment="true"/> | 43 | <eClassifiers xsi:type="ecore:EClass" name="Literal" abstract="true"/> |
44 | </eClassifiers> | 44 | <eClassifiers xsi:type="ecore:EClass" name="Atom" eSuperTypes="#//Literal"> |
45 | <eClassifiers xsi:type="ecore:EClass" name="Literal" abstract="true"/> | 45 | <eStructuralFeatures xsi:type="ecore:EReference" name="relation" eType="#//Relation"/> |
46 | <eClassifiers xsi:type="ecore:EClass" name="Atom" eSuperTypes="#//Literal"> | 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="relation" eType="#//Relation"/> | 47 | <eStructuralFeatures xsi:type="ecore:EReference" name="arguments" upperBound="-1" |
48 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="transitiveClosure" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/> | 48 | eType="#//Argument" containment="true"/> |
49 | <eStructuralFeatures xsi:type="ecore:EReference" name="arguments" upperBound="-1" | 49 | </eClassifiers> |
50 | eType="#//Argument" containment="true"/> | 50 | <eClassifiers xsi:type="ecore:EClass" name="ImplicitVariable" eSuperTypes="#//Variable"/> |
51 | </eClassifiers> | 51 | <eClassifiers xsi:type="ecore:EClass" name="NegativeLiteral" eSuperTypes="#//ExistentialQuantifier #//CompoundLiteral"/> |
52 | <eClassifiers xsi:type="ecore:EClass" name="ImplicitVariable" eSuperTypes="#//Variable"/> | 52 | <eClassifiers xsi:type="ecore:EClass" name="ExistentialQuantifier" abstract="true" |
53 | <eClassifiers xsi:type="ecore:EClass" name="NegativeLiteral" eSuperTypes="#//ExistentialQuantifier #//Literal"> | 53 | interface="true"> |
54 | <eStructuralFeatures xsi:type="ecore:EReference" name="atom" eType="#//Atom" containment="true"/> | 54 | <eStructuralFeatures xsi:type="ecore:EReference" name="implicitVariables" upperBound="-1" |
55 | </eClassifiers> | 55 | eType="#//ImplicitVariable" containment="true"/> |
56 | <eClassifiers xsi:type="ecore:EClass" name="ExistentialQuantifier" abstract="true" | 56 | </eClassifiers> |
57 | interface="true"> | 57 | <eClassifiers xsi:type="ecore:EClass" name="Assertion" eSuperTypes="#//Statement"> |
58 | <eStructuralFeatures xsi:type="ecore:EReference" name="implicitVariables" upperBound="-1" | 58 | <eStructuralFeatures xsi:type="ecore:EReference" name="relation" eType="#//Relation"/> |
59 | eType="#//ImplicitVariable" containment="true"/> | 59 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="value" eType="#//LogicValue"/> |
60 | </eClassifiers> | 60 | <eStructuralFeatures xsi:type="ecore:EReference" name="arguments" upperBound="-1" |
61 | <eClassifiers xsi:type="ecore:EClass" name="Assertion" eSuperTypes="#//Statement"> | 61 | eType="#//AssertionArgument" containment="true"/> |
62 | <eStructuralFeatures xsi:type="ecore:EReference" name="relation" eType="#//Relation"/> | 62 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="default" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean" |
63 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="value" eType="#//LogicValue"/> | 63 | defaultValueLiteral="false"/> |
64 | <eStructuralFeatures xsi:type="ecore:EReference" name="arguments" upperBound="-1" | 64 | </eClassifiers> |
65 | eType="#//AssertionArgument" containment="true"/> | 65 | <eClassifiers xsi:type="ecore:EClass" name="Node" eSuperTypes="#//VariableOrNode"/> |
66 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="default" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean" | 66 | <eClassifiers xsi:type="ecore:EEnum" name="LogicValue"> |
67 | defaultValueLiteral="false"/> | 67 | <eLiterals name="TRUE" literal="TRUE"/> |
68 | </eClassifiers> | 68 | <eLiterals name="FALSE" value="1"/> |
69 | <eClassifiers xsi:type="ecore:EClass" name="Node" eSuperTypes="#//VariableOrNode"/> | 69 | <eLiterals name="UNKNOWN" value="2"/> |
70 | <eClassifiers xsi:type="ecore:EEnum" name="LogicValue"> | 70 | <eLiterals name="ERROR" value="3"/> |
71 | <eLiterals name="TRUE" literal="TRUE"/> | 71 | </eClassifiers> |
72 | <eLiterals name="FALSE" value="1"/> | 72 | <eClassifiers xsi:type="ecore:EClass" name="ScopeDeclaration" eSuperTypes="#//Statement"> |
73 | <eLiterals name="UNKNOWN" value="2"/> | 73 | <eStructuralFeatures xsi:type="ecore:EReference" name="typeScopes" upperBound="-1" |
74 | <eLiterals name="ERROR" value="3"/> | 74 | eType="#//TypeScope" containment="true"/> |
75 | </eClassifiers> | 75 | </eClassifiers> |
76 | <eClassifiers xsi:type="ecore:EClass" name="ScopeDeclaration" eSuperTypes="#//Statement"> | 76 | <eClassifiers xsi:type="ecore:EClass" name="Statement" abstract="true" interface="true"/> |
77 | <eStructuralFeatures xsi:type="ecore:EReference" name="typeScopes" upperBound="-1" | 77 | <eClassifiers xsi:type="ecore:EClass" name="TypeScope"> |
78 | eType="#//TypeScope" containment="true"/> | 78 | <eStructuralFeatures xsi:type="ecore:EReference" name="targetType" eType="#//ClassDeclaration"/> |
79 | </eClassifiers> | 79 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="increment" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/> |
80 | <eClassifiers xsi:type="ecore:EClass" name="Statement" abstract="true" interface="true"/> | 80 | <eStructuralFeatures xsi:type="ecore:EReference" name="multiplicity" eType="#//Multiplicity" |
81 | <eClassifiers xsi:type="ecore:EClass" name="TypeScope"> | 81 | containment="true"/> |
82 | <eStructuralFeatures xsi:type="ecore:EReference" name="targetType" eType="#//ClassDeclaration"/> | 82 | </eClassifiers> |
83 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="increment" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/> | 83 | <eClassifiers xsi:type="ecore:EClass" name="Multiplicity" abstract="true"/> |
84 | <eStructuralFeatures xsi:type="ecore:EReference" name="multiplicity" eType="#//Multiplicity" | 84 | <eClassifiers xsi:type="ecore:EClass" name="RangeMultiplicity" eSuperTypes="#//Multiplicity"> |
85 | containment="true"/> | 85 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="lowerBound" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt" |
86 | </eClassifiers> | 86 | defaultValueLiteral="0"/> |
87 | <eClassifiers xsi:type="ecore:EClass" name="Multiplicity" abstract="true"/> | 87 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="upperBound" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt" |
88 | <eClassifiers xsi:type="ecore:EClass" name="RangeMultiplicity" eSuperTypes="#//Multiplicity"> | 88 | defaultValueLiteral="-1"/> |
89 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="lowerBound" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt" | 89 | </eClassifiers> |
90 | defaultValueLiteral="0"/> | 90 | <eClassifiers xsi:type="ecore:EClass" name="ExactMultiplicity" eSuperTypes="#//Multiplicity"> |
91 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="upperBound" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt" | 91 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="exactValue" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt" |
92 | defaultValueLiteral="-1"/> | 92 | defaultValueLiteral="1"/> |
93 | </eClassifiers> | 93 | </eClassifiers> |
94 | <eClassifiers xsi:type="ecore:EClass" name="ExactMultiplicity" eSuperTypes="#//Multiplicity"> | 94 | <eClassifiers xsi:type="ecore:EClass" name="UnboundedMultiplicity" eSuperTypes="#//Multiplicity"/> |
95 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="exactValue" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt" | 95 | <eClassifiers xsi:type="ecore:EClass" name="VariableOrNodeArgument" eSuperTypes="#//Argument"> |
96 | defaultValueLiteral="1"/> | 96 | <eStructuralFeatures xsi:type="ecore:EReference" name="variableOrNode" eType="#//VariableOrNode"/> |
97 | </eClassifiers> | 97 | <eStructuralFeatures xsi:type="ecore:EReference" name="singletonVariable" eType="#//ImplicitVariable" |
98 | <eClassifiers xsi:type="ecore:EClass" name="UnboundedMultiplicity" eSuperTypes="#//Multiplicity"/> | 98 | containment="true"/> |
99 | <eClassifiers xsi:type="ecore:EClass" name="VariableOrNodeArgument" eSuperTypes="#//Argument"> | 99 | </eClassifiers> |
100 | <eStructuralFeatures xsi:type="ecore:EReference" name="variableOrNode" eType="#//VariableOrNode"/> | 100 | <eClassifiers xsi:type="ecore:EClass" name="EnumDeclaration" eSuperTypes="#//Relation #//Statement"> |
101 | <eStructuralFeatures xsi:type="ecore:EReference" name="singletonVariable" eType="#//ImplicitVariable" | 101 | <eStructuralFeatures xsi:type="ecore:EReference" name="literals" upperBound="-1" |
102 | containment="true"/> | 102 | eType="#//Node" containment="true"/> |
103 | </eClassifiers> | 103 | </eClassifiers> |
104 | <eClassifiers xsi:type="ecore:EClass" name="EnumDeclaration" eSuperTypes="#//Relation #//Statement"> | 104 | <eClassifiers xsi:type="ecore:EClass" name="VariableOrNode" abstract="true" eSuperTypes="#//NamedElement"/> |
105 | <eStructuralFeatures xsi:type="ecore:EReference" name="literals" upperBound="-1" | 105 | <eClassifiers xsi:type="ecore:EClass" name="Constant" abstract="true"/> |
106 | eType="#//Node" containment="true"/> | 106 | <eClassifiers xsi:type="ecore:EClass" name="IntConstant" eSuperTypes="#//Constant"> |
107 | </eClassifiers> | 107 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="intValue" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt" |
108 | <eClassifiers xsi:type="ecore:EClass" name="VariableOrNode" abstract="true" eSuperTypes="#//NamedElement"/> | 108 | defaultValueLiteral="0"/> |
109 | <eClassifiers xsi:type="ecore:EClass" name="Constant" abstract="true"/> | 109 | </eClassifiers> |
110 | <eClassifiers xsi:type="ecore:EClass" name="IntConstant" eSuperTypes="#//Constant"> | 110 | <eClassifiers xsi:type="ecore:EClass" name="RealConstant" eSuperTypes="#//Constant"> |
111 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="intValue" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt" | 111 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="realValue" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble" |
112 | defaultValueLiteral="0"/> | 112 | defaultValueLiteral="0.0"/> |
113 | </eClassifiers> | 113 | </eClassifiers> |
114 | <eClassifiers xsi:type="ecore:EClass" name="RealConstant" eSuperTypes="#//Constant"> | 114 | <eClassifiers xsi:type="ecore:EClass" name="StringConstant" eSuperTypes="#//Constant"> |
115 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="realValue" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble" | 115 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="stringValue" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/> |
116 | defaultValueLiteral="0.0"/> | 116 | </eClassifiers> |
117 | </eClassifiers> | 117 | <eClassifiers xsi:type="ecore:EClass" name="ConstantArgument" eSuperTypes="#//Argument"> |
118 | <eClassifiers xsi:type="ecore:EClass" name="StringConstant" eSuperTypes="#//Constant"> | 118 | <eStructuralFeatures xsi:type="ecore:EReference" name="constant" eType="#//Constant" |
119 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="stringValue" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/> | 119 | containment="true"/> |
120 | </eClassifiers> | 120 | </eClassifiers> |
121 | <eClassifiers xsi:type="ecore:EClass" name="ConstantArgument" eSuperTypes="#//Argument"> | 121 | <eClassifiers xsi:type="ecore:EClass" name="Argument" abstract="true"/> |
122 | <eStructuralFeatures xsi:type="ecore:EReference" name="constant" eType="#//Constant" | 122 | <eClassifiers xsi:type="ecore:EClass" name="NodeAssertionArgument" eSuperTypes="#//AssertionArgument"> |
123 | containment="true"/> | 123 | <eStructuralFeatures xsi:type="ecore:EReference" name="node" eType="#//Node"/> |
124 | </eClassifiers> | 124 | </eClassifiers> |
125 | <eClassifiers xsi:type="ecore:EClass" name="Argument" abstract="true"/> | 125 | <eClassifiers xsi:type="ecore:EClass" name="AssertionArgument" abstract="true"/> |
126 | <eClassifiers xsi:type="ecore:EClass" name="NodeAssertionArgument" eSuperTypes="#//AssertionArgument"> | 126 | <eClassifiers xsi:type="ecore:EClass" name="ConstantAssertionArgument" eSuperTypes="#//AssertionArgument"> |
127 | <eStructuralFeatures xsi:type="ecore:EReference" name="node" eType="#//Node"/> | 127 | <eStructuralFeatures xsi:type="ecore:EReference" name="constant" eType="#//Constant" |
128 | </eClassifiers> | 128 | containment="true"/> |
129 | <eClassifiers xsi:type="ecore:EClass" name="AssertionArgument" abstract="true"/> | 129 | </eClassifiers> |
130 | <eClassifiers xsi:type="ecore:EClass" name="ConstantAssertionArgument" eSuperTypes="#//AssertionArgument"> | 130 | <eClassifiers xsi:type="ecore:EClass" name="NodeValueAssertion" eSuperTypes="#//Statement"> |
131 | <eStructuralFeatures xsi:type="ecore:EReference" name="constant" eType="#//Constant" | 131 | <eStructuralFeatures xsi:type="ecore:EReference" name="node" eType="#//Node"/> |
132 | containment="true"/> | 132 | <eStructuralFeatures xsi:type="ecore:EReference" name="value" eType="#//Constant" |
133 | </eClassifiers> | 133 | containment="true"/> |
134 | <eClassifiers xsi:type="ecore:EClass" name="NodeValueAssertion" eSuperTypes="#//Statement"> | 134 | </eClassifiers> |
135 | <eStructuralFeatures xsi:type="ecore:EReference" name="node" eType="#//Node"/> | 135 | <eClassifiers xsi:type="ecore:EClass" name="UniqueDeclaration" eSuperTypes="#//Statement"> |
136 | <eStructuralFeatures xsi:type="ecore:EReference" name="value" eType="#//Constant" | 136 | <eStructuralFeatures xsi:type="ecore:EReference" name="nodes" upperBound="-1" |
137 | containment="true"/> | 137 | eType="#//Node" containment="true"/> |
138 | </eClassifiers> | 138 | </eClassifiers> |
139 | <eClassifiers xsi:type="ecore:EClass" name="UniqueDeclaration" eSuperTypes="#//Statement"> | 139 | <eClassifiers xsi:type="ecore:EClass" name="WildcardAssertionArgument" eSuperTypes="#//AssertionArgument"/> |
140 | <eStructuralFeatures xsi:type="ecore:EReference" name="nodes" upperBound="-1" | 140 | <eClassifiers xsi:type="ecore:EClass" name="ParametricDefinition" abstract="true" |
141 | eType="#//Node" containment="true"/> | 141 | interface="true" eSuperTypes="#//Statement"> |
142 | </eClassifiers> | 142 | <eStructuralFeatures xsi:type="ecore:EReference" name="bodies" upperBound="-1" |
143 | <eClassifiers xsi:type="ecore:EClass" name="WildcardAssertionArgument" eSuperTypes="#//AssertionArgument"/> | 143 | eType="#//Conjunction" containment="true"/> |
144 | </ecore:EPackage> | 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> | ||
diff --git a/language-model/src/main/resources/model/problem.genmodel b/language-model/src/main/resources/model/problem.genmodel index 057b4917..3a244742 100644 --- a/language-model/src/main/resources/model/problem.genmodel +++ b/language-model/src/main/resources/model/problem.genmodel | |||
@@ -1,127 +1,165 @@ | |||
1 | <?xml version="1.0" encoding="UTF-8"?> | 1 | <?xml version="1.0" encoding="UTF-8"?> |
2 | <genmodel:GenModel xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" | 2 | <genmodel:GenModel 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" xmlns:genmodel="http://www.eclipse.org/emf/2002/GenModel" | 3 | xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:genmodel="http://www.eclipse.org/emf/2002/GenModel" |
4 | modelDirectory="/language-model/src/main/emf-gen" creationIcons="false" | 4 | modelDirectory="/language-model/src/main/emf-gen" creationIcons="false" |
5 | editDirectory="/language-edit/src/main/emf-gen" editorDirectory="/org.eclipse.viatra.solver.language.model.editor/src-gen" | 5 | editDirectory="/language-edit/src/main/emf-gen" editorDirectory="/org.eclipse.viatra.solver.language.model.editor/src-gen" |
6 | modelPluginID="language-model" modelName="Problem" rootExtendsClass="org.eclipse.emf.ecore.impl.MinimalEObjectImpl$Container" | 6 | modelPluginID="language-model" modelName="Problem" rootExtendsClass="org.eclipse.emf.ecore.impl.MinimalEObjectImpl$Container" |
7 | codeFormatting="true" importerID="org.eclipse.emf.importer.ecore" complianceLevel="5.0" | 7 | codeFormatting="true" importerID="org.eclipse.emf.importer.ecore" complianceLevel="5.0" |
8 | copyrightFields="false" operationReflection="true" importOrganizing="true"> | 8 | copyrightFields="false" operationReflection="true" importOrganizing="true"> |
9 | <foreignModel>problem.ecore</foreignModel> | 9 | <foreignModel>problem.ecore</foreignModel> |
10 | <testsDirectory xsi:nil="true"/> | 10 | <testsDirectory xsi:nil="true"/> |
11 | <genPackages prefix="Problem" basePackage="tools.refinery.language.model" resource="XMI" | 11 | <genPackages prefix="Problem" basePackage="tools.refinery.language.model" resource="XMI" |
12 | disposableProviderFactory="true" fileExtensions="problem_xmi" ecorePackage="problem.ecore#/"> | 12 | disposableProviderFactory="true" fileExtensions="problem_xmi" ecorePackage="problem.ecore#/"> |
13 | <genEnums typeSafeEnumCompatible="false" ecoreEnum="problem.ecore#//LogicValue"> | 13 | <genEnums typeSafeEnumCompatible="false" ecoreEnum="problem.ecore#//LogicValue"> |
14 | <genEnumLiterals ecoreEnumLiteral="problem.ecore#//LogicValue/TRUE"/> | 14 | <genEnumLiterals ecoreEnumLiteral="problem.ecore#//LogicValue/TRUE"/> |
15 | <genEnumLiterals ecoreEnumLiteral="problem.ecore#//LogicValue/FALSE"/> | 15 | <genEnumLiterals ecoreEnumLiteral="problem.ecore#//LogicValue/FALSE"/> |
16 | <genEnumLiterals ecoreEnumLiteral="problem.ecore#//LogicValue/UNKNOWN"/> | 16 | <genEnumLiterals ecoreEnumLiteral="problem.ecore#//LogicValue/UNKNOWN"/> |
17 | <genEnumLiterals ecoreEnumLiteral="problem.ecore#//LogicValue/ERROR"/> | 17 | <genEnumLiterals ecoreEnumLiteral="problem.ecore#//LogicValue/ERROR"/> |
18 | </genEnums> | 18 | </genEnums> |
19 | <genClasses ecoreClass="problem.ecore#//Problem"> | 19 | <genEnums typeSafeEnumCompatible="false" ecoreEnum="problem.ecore#//PredicateKind"> |
20 | <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference problem.ecore#//Problem/nodes"/> | 20 | <genEnumLiterals ecoreEnumLiteral="problem.ecore#//PredicateKind/PARTIAL"/> |
21 | <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference problem.ecore#//Problem/statements"/> | 21 | <genEnumLiterals ecoreEnumLiteral="problem.ecore#//PredicateKind/DIRECT"/> |
22 | </genClasses> | 22 | </genEnums> |
23 | <genClasses ecoreClass="problem.ecore#//Relation"/> | 23 | <genEnums typeSafeEnumCompatible="false" ecoreEnum="problem.ecore#//RuleKind"> |
24 | <genClasses ecoreClass="problem.ecore#//ClassDeclaration"> | 24 | <genEnumLiterals ecoreEnumLiteral="problem.ecore#//RuleKind/DIRECT"/> |
25 | <genFeatures createChild="false" ecoreFeature="ecore:EAttribute problem.ecore#//ClassDeclaration/abstract"/> | 25 | </genEnums> |
26 | <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference problem.ecore#//ClassDeclaration/superTypes"/> | 26 | <genClasses ecoreClass="problem.ecore#//Problem"> |
27 | <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference problem.ecore#//ClassDeclaration/referenceDeclarations"/> | 27 | <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference problem.ecore#//Problem/nodes"/> |
28 | <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference problem.ecore#//ClassDeclaration/newNode"/> | 28 | <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference problem.ecore#//Problem/statements"/> |
29 | </genClasses> | 29 | </genClasses> |
30 | <genClasses ecoreClass="problem.ecore#//ReferenceDeclaration"> | 30 | <genClasses ecoreClass="problem.ecore#//Relation"/> |
31 | <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference problem.ecore#//ReferenceDeclaration/referenceType"/> | 31 | <genClasses ecoreClass="problem.ecore#//ClassDeclaration"> |
32 | <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference problem.ecore#//ReferenceDeclaration/opposite"/> | 32 | <genFeatures createChild="false" ecoreFeature="ecore:EAttribute problem.ecore#//ClassDeclaration/abstract"/> |
33 | <genFeatures createChild="false" ecoreFeature="ecore:EAttribute problem.ecore#//ReferenceDeclaration/containment"/> | 33 | <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference problem.ecore#//ClassDeclaration/superTypes"/> |
34 | <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference problem.ecore#//ReferenceDeclaration/multiplicity"/> | 34 | <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference problem.ecore#//ClassDeclaration/referenceDeclarations"/> |
35 | </genClasses> | 35 | <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference problem.ecore#//ClassDeclaration/newNode"/> |
36 | <genClasses ecoreClass="problem.ecore#//NamedElement"> | 36 | </genClasses> |
37 | <genFeatures createChild="false" ecoreFeature="ecore:EAttribute problem.ecore#//NamedElement/name"/> | 37 | <genClasses ecoreClass="problem.ecore#//ReferenceDeclaration"> |
38 | </genClasses> | 38 | <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference problem.ecore#//ReferenceDeclaration/referenceType"/> |
39 | <genClasses ecoreClass="problem.ecore#//PredicateDefinition"> | 39 | <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference problem.ecore#//ReferenceDeclaration/opposite"/> |
40 | <genFeatures createChild="false" ecoreFeature="ecore:EAttribute problem.ecore#//PredicateDefinition/error"/> | 40 | <genFeatures createChild="false" ecoreFeature="ecore:EAttribute problem.ecore#//ReferenceDeclaration/containment"/> |
41 | <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference problem.ecore#//PredicateDefinition/parameters"/> | 41 | <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference problem.ecore#//ReferenceDeclaration/multiplicity"/> |
42 | <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference problem.ecore#//PredicateDefinition/bodies"/> | 42 | </genClasses> |
43 | </genClasses> | 43 | <genClasses ecoreClass="problem.ecore#//NamedElement"> |
44 | <genClasses ecoreClass="problem.ecore#//Parameter"> | 44 | <genFeatures createChild="false" ecoreFeature="ecore:EAttribute problem.ecore#//NamedElement/name"/> |
45 | <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference problem.ecore#//Parameter/parameterType"/> | 45 | </genClasses> |
46 | </genClasses> | 46 | <genClasses ecoreClass="problem.ecore#//PredicateDefinition"> |
47 | <genClasses ecoreClass="problem.ecore#//Variable"/> | 47 | <genFeatures createChild="false" ecoreFeature="ecore:EAttribute problem.ecore#//PredicateDefinition/error"/> |
48 | <genClasses ecoreClass="problem.ecore#//Conjunction"> | 48 | <genFeatures createChild="false" ecoreFeature="ecore:EAttribute problem.ecore#//PredicateDefinition/kind"/> |
49 | <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference problem.ecore#//Conjunction/literals"/> | 49 | </genClasses> |
50 | </genClasses> | 50 | <genClasses ecoreClass="problem.ecore#//Parameter"> |
51 | <genClasses ecoreClass="problem.ecore#//Literal"/> | 51 | <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference problem.ecore#//Parameter/parameterType"/> |
52 | <genClasses ecoreClass="problem.ecore#//Atom"> | 52 | </genClasses> |
53 | <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference problem.ecore#//Atom/relation"/> | 53 | <genClasses ecoreClass="problem.ecore#//Variable"/> |
54 | <genFeatures createChild="false" ecoreFeature="ecore:EAttribute problem.ecore#//Atom/transitiveClosure"/> | 54 | <genClasses ecoreClass="problem.ecore#//Conjunction"> |
55 | <genFeatures children="true" createChild="true" propertySortChoices="true" ecoreFeature="ecore:EReference problem.ecore#//Atom/arguments"/> | 55 | <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference problem.ecore#//Conjunction/literals"/> |
56 | </genClasses> | 56 | </genClasses> |
57 | <genClasses ecoreClass="problem.ecore#//ImplicitVariable"/> | 57 | <genClasses ecoreClass="problem.ecore#//Literal"/> |
58 | <genClasses ecoreClass="problem.ecore#//NegativeLiteral"> | 58 | <genClasses ecoreClass="problem.ecore#//Atom"> |
59 | <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference problem.ecore#//NegativeLiteral/atom"/> | 59 | <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference problem.ecore#//Atom/relation"/> |
60 | </genClasses> | 60 | <genFeatures createChild="false" ecoreFeature="ecore:EAttribute problem.ecore#//Atom/transitiveClosure"/> |
61 | <genClasses ecoreClass="problem.ecore#//ExistentialQuantifier"> | 61 | <genFeatures children="true" createChild="true" propertySortChoices="true" ecoreFeature="ecore:EReference problem.ecore#//Atom/arguments"/> |
62 | <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference problem.ecore#//ExistentialQuantifier/implicitVariables"/> | 62 | </genClasses> |
63 | </genClasses> | 63 | <genClasses ecoreClass="problem.ecore#//ImplicitVariable"/> |
64 | <genClasses ecoreClass="problem.ecore#//Assertion"> | 64 | <genClasses ecoreClass="problem.ecore#//NegativeLiteral"/> |
65 | <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference problem.ecore#//Assertion/relation"/> | 65 | <genClasses ecoreClass="problem.ecore#//ExistentialQuantifier"> |
66 | <genFeatures createChild="false" ecoreFeature="ecore:EAttribute problem.ecore#//Assertion/value"/> | 66 | <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference problem.ecore#//ExistentialQuantifier/implicitVariables"/> |
67 | <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference problem.ecore#//Assertion/arguments"/> | 67 | </genClasses> |
68 | <genFeatures createChild="false" ecoreFeature="ecore:EAttribute problem.ecore#//Assertion/default"/> | 68 | <genClasses ecoreClass="problem.ecore#//Assertion"> |
69 | </genClasses> | 69 | <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference problem.ecore#//Assertion/relation"/> |
70 | <genClasses ecoreClass="problem.ecore#//Node"/> | 70 | <genFeatures createChild="false" ecoreFeature="ecore:EAttribute problem.ecore#//Assertion/value"/> |
71 | <genClasses ecoreClass="problem.ecore#//ScopeDeclaration"> | 71 | <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference problem.ecore#//Assertion/arguments"/> |
72 | <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference problem.ecore#//ScopeDeclaration/typeScopes"/> | 72 | <genFeatures createChild="false" ecoreFeature="ecore:EAttribute problem.ecore#//Assertion/default"/> |
73 | </genClasses> | 73 | </genClasses> |
74 | <genClasses ecoreClass="problem.ecore#//Statement"/> | 74 | <genClasses ecoreClass="problem.ecore#//Node"/> |
75 | <genClasses ecoreClass="problem.ecore#//TypeScope"> | 75 | <genClasses ecoreClass="problem.ecore#//ScopeDeclaration"> |
76 | <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference problem.ecore#//TypeScope/targetType"/> | 76 | <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference problem.ecore#//ScopeDeclaration/typeScopes"/> |
77 | <genFeatures createChild="false" ecoreFeature="ecore:EAttribute problem.ecore#//TypeScope/increment"/> | 77 | </genClasses> |
78 | <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference problem.ecore#//TypeScope/multiplicity"/> | 78 | <genClasses ecoreClass="problem.ecore#//Statement"/> |
79 | </genClasses> | 79 | <genClasses ecoreClass="problem.ecore#//TypeScope"> |
80 | <genClasses ecoreClass="problem.ecore#//Multiplicity"/> | 80 | <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference problem.ecore#//TypeScope/targetType"/> |
81 | <genClasses ecoreClass="problem.ecore#//RangeMultiplicity"> | 81 | <genFeatures createChild="false" ecoreFeature="ecore:EAttribute problem.ecore#//TypeScope/increment"/> |
82 | <genFeatures createChild="false" ecoreFeature="ecore:EAttribute problem.ecore#//RangeMultiplicity/lowerBound"/> | 82 | <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference problem.ecore#//TypeScope/multiplicity"/> |
83 | <genFeatures createChild="false" ecoreFeature="ecore:EAttribute problem.ecore#//RangeMultiplicity/upperBound"/> | 83 | </genClasses> |
84 | </genClasses> | 84 | <genClasses ecoreClass="problem.ecore#//Multiplicity"/> |
85 | <genClasses ecoreClass="problem.ecore#//ExactMultiplicity"> | 85 | <genClasses ecoreClass="problem.ecore#//RangeMultiplicity"> |
86 | <genFeatures createChild="false" ecoreFeature="ecore:EAttribute problem.ecore#//ExactMultiplicity/exactValue"/> | 86 | <genFeatures createChild="false" ecoreFeature="ecore:EAttribute problem.ecore#//RangeMultiplicity/lowerBound"/> |
87 | </genClasses> | 87 | <genFeatures createChild="false" ecoreFeature="ecore:EAttribute problem.ecore#//RangeMultiplicity/upperBound"/> |
88 | <genClasses ecoreClass="problem.ecore#//UnboundedMultiplicity"/> | 88 | </genClasses> |
89 | <genClasses ecoreClass="problem.ecore#//VariableOrNodeArgument"> | 89 | <genClasses ecoreClass="problem.ecore#//ExactMultiplicity"> |
90 | <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference problem.ecore#//VariableOrNodeArgument/variableOrNode"/> | 90 | <genFeatures createChild="false" ecoreFeature="ecore:EAttribute problem.ecore#//ExactMultiplicity/exactValue"/> |
91 | <genFeatures children="true" createChild="true" propertySortChoices="true" ecoreFeature="ecore:EReference problem.ecore#//VariableOrNodeArgument/singletonVariable"/> | 91 | </genClasses> |
92 | </genClasses> | 92 | <genClasses ecoreClass="problem.ecore#//UnboundedMultiplicity"/> |
93 | <genClasses ecoreClass="problem.ecore#//EnumDeclaration"> | 93 | <genClasses ecoreClass="problem.ecore#//VariableOrNodeArgument"> |
94 | <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference problem.ecore#//EnumDeclaration/literals"/> | 94 | <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference problem.ecore#//VariableOrNodeArgument/variableOrNode"/> |
95 | </genClasses> | 95 | <genFeatures children="true" createChild="true" propertySortChoices="true" ecoreFeature="ecore:EReference problem.ecore#//VariableOrNodeArgument/singletonVariable"/> |
96 | <genClasses ecoreClass="problem.ecore#//VariableOrNode"/> | 96 | </genClasses> |
97 | <genClasses ecoreClass="problem.ecore#//Constant"/> | 97 | <genClasses ecoreClass="problem.ecore#//EnumDeclaration"> |
98 | <genClasses ecoreClass="problem.ecore#//IntConstant"> | 98 | <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference problem.ecore#//EnumDeclaration/literals"/> |
99 | <genFeatures createChild="false" ecoreFeature="ecore:EAttribute problem.ecore#//IntConstant/intValue"/> | 99 | </genClasses> |
100 | </genClasses> | 100 | <genClasses ecoreClass="problem.ecore#//VariableOrNode"/> |
101 | <genClasses ecoreClass="problem.ecore#//RealConstant"> | 101 | <genClasses ecoreClass="problem.ecore#//Constant"/> |
102 | <genFeatures createChild="false" ecoreFeature="ecore:EAttribute problem.ecore#//RealConstant/realValue"/> | 102 | <genClasses ecoreClass="problem.ecore#//IntConstant"> |
103 | </genClasses> | 103 | <genFeatures createChild="false" ecoreFeature="ecore:EAttribute problem.ecore#//IntConstant/intValue"/> |
104 | <genClasses ecoreClass="problem.ecore#//StringConstant"> | 104 | </genClasses> |
105 | <genFeatures createChild="false" ecoreFeature="ecore:EAttribute problem.ecore#//StringConstant/stringValue"/> | 105 | <genClasses ecoreClass="problem.ecore#//RealConstant"> |
106 | </genClasses> | 106 | <genFeatures createChild="false" ecoreFeature="ecore:EAttribute problem.ecore#//RealConstant/realValue"/> |
107 | <genClasses ecoreClass="problem.ecore#//ConstantArgument"> | 107 | </genClasses> |
108 | <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference problem.ecore#//ConstantArgument/constant"/> | 108 | <genClasses ecoreClass="problem.ecore#//StringConstant"> |
109 | </genClasses> | 109 | <genFeatures createChild="false" ecoreFeature="ecore:EAttribute problem.ecore#//StringConstant/stringValue"/> |
110 | <genClasses ecoreClass="problem.ecore#//Argument"/> | 110 | </genClasses> |
111 | <genClasses ecoreClass="problem.ecore#//NodeAssertionArgument"> | 111 | <genClasses ecoreClass="problem.ecore#//ConstantArgument"> |
112 | <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference problem.ecore#//NodeAssertionArgument/node"/> | 112 | <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference problem.ecore#//ConstantArgument/constant"/> |
113 | </genClasses> | 113 | </genClasses> |
114 | <genClasses ecoreClass="problem.ecore#//AssertionArgument"/> | 114 | <genClasses ecoreClass="problem.ecore#//Argument"/> |
115 | <genClasses ecoreClass="problem.ecore#//ConstantAssertionArgument"> | 115 | <genClasses ecoreClass="problem.ecore#//NodeAssertionArgument"> |
116 | <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference problem.ecore#//ConstantAssertionArgument/constant"/> | 116 | <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference problem.ecore#//NodeAssertionArgument/node"/> |
117 | </genClasses> | 117 | </genClasses> |
118 | <genClasses ecoreClass="problem.ecore#//NodeValueAssertion"> | 118 | <genClasses ecoreClass="problem.ecore#//AssertionArgument"/> |
119 | <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference problem.ecore#//NodeValueAssertion/node"/> | 119 | <genClasses ecoreClass="problem.ecore#//ConstantAssertionArgument"> |
120 | <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference problem.ecore#//NodeValueAssertion/value"/> | 120 | <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference problem.ecore#//ConstantAssertionArgument/constant"/> |
121 | </genClasses> | 121 | </genClasses> |
122 | <genClasses ecoreClass="problem.ecore#//UniqueDeclaration"> | 122 | <genClasses ecoreClass="problem.ecore#//NodeValueAssertion"> |
123 | <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference problem.ecore#//UniqueDeclaration/nodes"/> | 123 | <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference problem.ecore#//NodeValueAssertion/node"/> |
124 | </genClasses> | 124 | <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference problem.ecore#//NodeValueAssertion/value"/> |
125 | <genClasses ecoreClass="problem.ecore#//WildcardAssertionArgument"/> | 125 | </genClasses> |
126 | </genPackages> | 126 | <genClasses ecoreClass="problem.ecore#//UniqueDeclaration"> |
127 | </genmodel:GenModel> | 127 | <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference problem.ecore#//UniqueDeclaration/nodes"/> |
128 | </genClasses> | ||
129 | <genClasses ecoreClass="problem.ecore#//WildcardAssertionArgument"/> | ||
130 | <genClasses ecoreClass="problem.ecore#//ParametricDefinition"> | ||
131 | <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference problem.ecore#//ParametricDefinition/bodies"/> | ||
132 | <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference problem.ecore#//ParametricDefinition/parameters"/> | ||
133 | </genClasses> | ||
134 | <genClasses ecoreClass="problem.ecore#//RuleDefinition"> | ||
135 | <genFeatures createChild="false" ecoreFeature="ecore:EAttribute problem.ecore#//RuleDefinition/kind"/> | ||
136 | <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference problem.ecore#//RuleDefinition/action"/> | ||
137 | </genClasses> | ||
138 | <genClasses ecoreClass="problem.ecore#//Action"> | ||
139 | <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference problem.ecore#//Action/actionLiterals"/> | ||
140 | </genClasses> | ||
141 | <genClasses ecoreClass="problem.ecore#//ActionLiteral"/> | ||
142 | <genClasses ecoreClass="problem.ecore#//ValueActionLiteral"> | ||
143 | <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference problem.ecore#//ValueActionLiteral/atom"/> | ||
144 | <genFeatures createChild="false" ecoreFeature="ecore:EAttribute problem.ecore#//ValueActionLiteral/value"/> | ||
145 | <genFeatures createChild="false" ecoreFeature="ecore:EAttribute problem.ecore#//ValueActionLiteral/refinement"/> | ||
146 | </genClasses> | ||
147 | <genClasses ecoreClass="problem.ecore#//DeleteActionLiteral"> | ||
148 | <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference problem.ecore#//DeleteActionLiteral/variableOrNode"/> | ||
149 | </genClasses> | ||
150 | <genClasses ecoreClass="problem.ecore#//NewActionLiteral"> | ||
151 | <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference problem.ecore#//NewActionLiteral/variable"/> | ||
152 | </genClasses> | ||
153 | <genClasses ecoreClass="problem.ecore#//NewVariable"/> | ||
154 | <genClasses ecoreClass="problem.ecore#//CompoundLiteral"> | ||
155 | <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference problem.ecore#//CompoundLiteral/atom"/> | ||
156 | </genClasses> | ||
157 | <genClasses ecoreClass="problem.ecore#//ValueLiteral"> | ||
158 | <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference problem.ecore#//ValueLiteral/values"/> | ||
159 | <genFeatures createChild="false" ecoreFeature="ecore:EAttribute problem.ecore#//ValueLiteral/refinement"/> | ||
160 | </genClasses> | ||
161 | <genClasses ecoreClass="problem.ecore#//LogicConstant"> | ||
162 | <genFeatures createChild="false" ecoreFeature="ecore:EAttribute problem.ecore#//LogicConstant/value"/> | ||
163 | </genClasses> | ||
164 | </genPackages> | ||
165 | </genmodel:GenModel> | ||