diff options
Diffstat (limited to 'subprojects')
18 files changed, 299 insertions, 367 deletions
diff --git a/subprojects/frontend/src/index.tsx b/subprojects/frontend/src/index.tsx index 0165d7c1..a40f1762 100644 --- a/subprojects/frontend/src/index.tsx +++ b/subprojects/frontend/src/index.tsx | |||
@@ -10,29 +10,29 @@ const initialValue = `class Family { | |||
10 | } | 10 | } |
11 | 11 | ||
12 | class Person { | 12 | class Person { |
13 | refers Person[] children opposite parent | 13 | Person[] children opposite parent |
14 | refers Person[0..1] parent opposite children | 14 | Person[0..1] parent opposite children |
15 | int age | 15 | int age |
16 | refers TaxStatus taxStatus | 16 | TaxStatus taxStatus |
17 | } | 17 | } |
18 | 18 | ||
19 | enum TaxStatus { | 19 | enum TaxStatus { |
20 | child, student, adult, retired | 20 | CHILD, STUDENT, ADULT, RETIRED |
21 | } | 21 | } |
22 | 22 | ||
23 | % A child cannot have any dependents. | 23 | % A child cannot have any dependents. |
24 | pred invalidTaxStatus(Person p) <-> | 24 | pred invalidTaxStatus(Person p) <-> |
25 | taxStatus(p, child), | 25 | taxStatus(p, CHILD), |
26 | children(p, _q) | 26 | children(p, _q) |
27 | ; | 27 | ; |
28 | parent(p, q), | 28 | parent(p, q), |
29 | age(q) < age(p) | 29 | age(q) < age(p) |
30 | ; | 30 | ; |
31 | taxStatus(p, retired), | 31 | taxStatus(p, RETIRED), |
32 | parent(p, q), | 32 | parent(p, q), |
33 | !taxStatus(q, retired). | 33 | !taxStatus(q, RETIRED). |
34 | 34 | ||
35 | individual family. | 35 | indiv family. |
36 | Family(family). | 36 | Family(family). |
37 | members(family, anne). | 37 | members(family, anne). |
38 | members(family, bob). | 38 | members(family, bob). |
@@ -40,9 +40,9 @@ members(family, ciri). | |||
40 | children(anne, ciri). | 40 | children(anne, ciri). |
41 | ?children(bob, ciri). | 41 | ?children(bob, ciri). |
42 | default children(ciri, *): false. | 42 | default children(ciri, *): false. |
43 | taxStatus(anne, adult). | 43 | taxStatus(anne, ADULT). |
44 | age(bob) in 21..35. | 44 | age(bob): 21..35. |
45 | age(ciri) = 10. | 45 | age(ciri): 10. |
46 | 46 | ||
47 | scope Family = 1, Person += 5..10. | 47 | scope Family = 1, Person += 5..10. |
48 | `; | 48 | `; |
diff --git a/subprojects/frontend/src/language/problem.grammar b/subprojects/frontend/src/language/problem.grammar index 7c4098d5..c2410913 100644 --- a/subprojects/frontend/src/language/problem.grammar +++ b/subprojects/frontend/src/language/problem.grammar | |||
@@ -3,6 +3,7 @@ | |||
3 | @external prop implicitCompletion from './props' | 3 | @external prop implicitCompletion from './props' |
4 | 4 | ||
5 | @precedence { | 5 | @precedence { |
6 | reference @cut, | ||
6 | prefix, | 7 | prefix, |
7 | exponential @right, | 8 | exponential @right, |
8 | multiplicative @left, | 9 | multiplicative @left, |
@@ -47,10 +48,10 @@ statement { | |||
47 | Assertion { | 48 | Assertion { |
48 | kw<"default">? (NotOp | UnknownOp)? RelationName | 49 | kw<"default">? (NotOp | UnknownOp)? RelationName |
49 | ParameterList<AssertionArgument> | 50 | ParameterList<AssertionArgument> |
50 | (":" LogicValue | ("=" | kw<"in">) Expr)? "." | 51 | (":" Expr)? "." |
51 | } | | 52 | } | |
52 | IndividualDeclaration { | 53 | IndividualDeclaration { |
53 | kw<"individual"> sep<",", IndividualNodeName> "." | 54 | kw<"indiv"> sep<",", IndividualNodeName> "." |
54 | } | | 55 | } | |
55 | ScopeDeclaration { | 56 | ScopeDeclaration { |
56 | kw<"scope"> sep<",", ScopeElement> "." | 57 | kw<"scope"> sep<",", ScopeElement> "." |
@@ -58,7 +59,8 @@ statement { | |||
58 | } | 59 | } |
59 | 60 | ||
60 | FeatureDeclaration { | 61 | FeatureDeclaration { |
61 | (ReferenceKind | PrimitiveType | kw<"bool">) RelationName | 62 | // The @cut helps disambiguate silly cases like `contains contains` |
63 | (ReferenceKind !reference | PrimitiveType | kw<"bool">)? RelationName | ||
62 | ("[" Multiplicity? "]")? | 64 | ("[" Multiplicity? "]")? |
63 | RelationName | 65 | RelationName |
64 | (kw<"opposite"> RelationName)? | 66 | (kw<"opposite"> RelationName)? |
@@ -90,7 +92,7 @@ BinaryExpr { | |||
90 | } | 92 | } |
91 | 93 | ||
92 | UnaryExpr { | 94 | UnaryExpr { |
93 | !prefix ("+" | "-" | "!" | "#" | Modality) Expr | 95 | !prefix ("+" | "-" | "!" | kw<"count"> | Modality) Expr |
94 | } | 96 | } |
95 | 97 | ||
96 | Aggregation { | 98 | Aggregation { |
@@ -109,7 +111,7 @@ Atom { RelationName "+"? ParameterList<Expr> } | |||
109 | 111 | ||
110 | AssertionArgument { NodeName | StarArgument } | 112 | AssertionArgument { NodeName | StarArgument } |
111 | 113 | ||
112 | Constant { Real | String | StarMult } | 114 | Constant { Real | String | StarMult | LogicValue } |
113 | 115 | ||
114 | ReferenceKind { | 116 | ReferenceKind { |
115 | kw<"refers"> | ckw<"contains"> | kw<"container"> | 117 | kw<"refers"> | ckw<"contains"> | kw<"container"> |
@@ -199,7 +201,10 @@ sep1<separator, content> { content (separator content)* } | |||
199 | "\"" (![\\"\n] | "\\" (![\n] | "\n"))* "\"" | 201 | "\"" (![\\"\n] | "\\" (![\n] | "\n"))* "\"" |
200 | } | 202 | } |
201 | 203 | ||
202 | SymbolicComparisonOp { ">" | ">=" | "<" | "<=" | "==" | "!=" } | 204 | SymbolicComparisonOp { |
205 | ">" | ">=" | "<" | "<=" | "==" | "!=" | | ||
206 | "<:" | ":>" | "===" | "!==" | ||
207 | } | ||
203 | 208 | ||
204 | NotOp { "!" } | 209 | NotOp { "!" } |
205 | 210 | ||
diff --git a/subprojects/frontend/src/language/problemLanguageSupport.ts b/subprojects/frontend/src/language/problemLanguageSupport.ts index 2a973c93..497030e2 100644 --- a/subprojects/frontend/src/language/problemLanguageSupport.ts +++ b/subprojects/frontend/src/language/problemLanguageSupport.ts | |||
@@ -21,12 +21,12 @@ const parserWithMetadata = parser.configure({ | |||
21 | styleTags({ | 21 | styleTags({ |
22 | LineComment: t.lineComment, | 22 | LineComment: t.lineComment, |
23 | BlockComment: t.blockComment, | 23 | BlockComment: t.blockComment, |
24 | 'problem class enum pred individual scope': t.definitionKeyword, | 24 | 'problem class enum pred indiv scope': t.definitionKeyword, |
25 | 'abstract extends refers contains container opposite': t.modifier, | 25 | 'abstract extends refers contains container opposite': t.modifier, |
26 | 'default error contained containment': t.modifier, | 26 | 'default error contained containment': t.modifier, |
27 | 'true false unknown error': t.keyword, | 27 | 'true false unknown error': t.keyword, |
28 | 'int real string bool': t.keyword, | 28 | 'int real string bool': t.keyword, |
29 | 'may must current': t.operatorKeyword, | 29 | 'may must current count': t.operatorKeyword, |
30 | 'sum prod min max in': t.operatorKeyword, | 30 | 'sum prod min max in': t.operatorKeyword, |
31 | // 'new delete': t.keyword, | 31 | // 'new delete': t.keyword, |
32 | NotOp: t.operator, | 32 | NotOp: t.operator, |
diff --git a/subprojects/language-model/problem.aird b/subprojects/language-model/problem.aird index 71c35bf0..286dabd6 100644 --- a/subprojects/language-model/problem.aird +++ b/subprojects/language-model/problem.aird | |||
@@ -11,11 +11,11 @@ | |||
11 | <description xmi:type="description_1:DiagramDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']"/> | 11 | <description xmi:type="description_1:DiagramDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']"/> |
12 | <target xmi:type="ecore:EPackage" href="src/main/resources/model/problem.ecore#/"/> | 12 | <target xmi:type="ecore:EPackage" href="src/main/resources/model/problem.ecore#/"/> |
13 | </ownedRepresentationDescriptors> | 13 | </ownedRepresentationDescriptors> |
14 | <ownedRepresentationDescriptors xmi:type="viewpoint:DRepresentationDescriptor" uid="_z1bOYF3lEe2LuOZzJ_LhLg" name="expressions" repPath="#_z1YyIF3lEe2LuOZzJ_LhLg" changeId="c3a824dd-b6bd-4f9e-af60-d14ca2505e9b"> | 14 | <ownedRepresentationDescriptors xmi:type="viewpoint:DRepresentationDescriptor" uid="_z1bOYF3lEe2LuOZzJ_LhLg" name="expressions" repPath="#_z1YyIF3lEe2LuOZzJ_LhLg" changeId="847d1bab-b9a3-4b3c-9007-d1ef6cbc7d2b"> |
15 | <description xmi:type="description_1:DiagramDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']"/> | 15 | <description xmi:type="description_1:DiagramDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']"/> |
16 | <target xmi:type="ecore:EPackage" href="src/main/resources/model/problem.ecore#/"/> | 16 | <target xmi:type="ecore:EPackage" href="src/main/resources/model/problem.ecore#/"/> |
17 | </ownedRepresentationDescriptors> | 17 | </ownedRepresentationDescriptors> |
18 | <ownedRepresentationDescriptors xmi:type="viewpoint:DRepresentationDescriptor" uid="_xj9yMF4eEe2rXNsIDUvqhw" name="assertions" repPath="#_xj6H0F4eEe2rXNsIDUvqhw" changeId="28ff9304-150b-45c1-ac19-7a8c71612b50"> | 18 | <ownedRepresentationDescriptors xmi:type="viewpoint:DRepresentationDescriptor" uid="_xj9yMF4eEe2rXNsIDUvqhw" name="assertions" repPath="#_xj6H0F4eEe2rXNsIDUvqhw" changeId="af7c7d5e-5f27-4ef1-b9ba-f5b0e7934a73"> |
19 | <description xmi:type="description_1:DiagramDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']"/> | 19 | <description xmi:type="description_1:DiagramDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']"/> |
20 | <target xmi:type="ecore:EPackage" href="src/main/resources/model/problem.ecore#/"/> | 20 | <target xmi:type="ecore:EPackage" href="src/main/resources/model/problem.ecore#/"/> |
21 | </ownedRepresentationDescriptors> | 21 | </ownedRepresentationDescriptors> |
@@ -2796,7 +2796,7 @@ | |||
2796 | <styles xmi:type="notation:FilteringStyle" xmi:id="_87Ju5l4IEe2LuOZzJ_LhLg"/> | 2796 | <styles xmi:type="notation:FilteringStyle" xmi:id="_87Ju5l4IEe2LuOZzJ_LhLg"/> |
2797 | </children> | 2797 | </children> |
2798 | <styles xmi:type="notation:ShapeStyle" xmi:id="_87Ju4V4IEe2LuOZzJ_LhLg" fontName="Noto Sans" fontHeight="8" italic="true"/> | 2798 | <styles xmi:type="notation:ShapeStyle" xmi:id="_87Ju4V4IEe2LuOZzJ_LhLg" fontName="Noto Sans" fontHeight="8" italic="true"/> |
2799 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_87Ju4l4IEe2LuOZzJ_LhLg" x="2556" y="168"/> | 2799 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_87Ju4l4IEe2LuOZzJ_LhLg" x="2628" y="168"/> |
2800 | </children> | 2800 | </children> |
2801 | <children xmi:type="notation:Node" xmi:id="_JYXdgF4JEe2LuOZzJ_LhLg" type="2003" element="_JYQIwF4JEe2LuOZzJ_LhLg"> | 2801 | <children xmi:type="notation:Node" xmi:id="_JYXdgF4JEe2LuOZzJ_LhLg" type="2003" element="_JYQIwF4JEe2LuOZzJ_LhLg"> |
2802 | <children xmi:type="notation:Node" xmi:id="_JYXdg14JEe2LuOZzJ_LhLg" type="5007"/> | 2802 | <children xmi:type="notation:Node" xmi:id="_JYXdg14JEe2LuOZzJ_LhLg" type="5007"/> |
@@ -2912,11 +2912,27 @@ | |||
2912 | <styles xmi:type="notation:FontStyle" xmi:id="_pZfy4WgpEe24RpwpWgpkFQ" fontName="Noto Sans" fontHeight="8"/> | 2912 | <styles xmi:type="notation:FontStyle" xmi:id="_pZfy4WgpEe24RpwpWgpkFQ" fontName="Noto Sans" fontHeight="8"/> |
2913 | <layoutConstraint xmi:type="notation:Location" xmi:id="_pZfy4mgpEe24RpwpWgpkFQ"/> | 2913 | <layoutConstraint xmi:type="notation:Location" xmi:id="_pZfy4mgpEe24RpwpWgpkFQ"/> |
2914 | </children> | 2914 | </children> |
2915 | <children xmi:type="notation:Node" xmi:id="_BuRG0GkFEe24rIYSlCjKHA" type="3010" element="_BtK6oGkFEe24rIYSlCjKHA"> | ||
2916 | <styles xmi:type="notation:FontStyle" xmi:id="_BuRG0WkFEe24rIYSlCjKHA" fontName="Noto Sans" fontHeight="8"/> | ||
2917 | <layoutConstraint xmi:type="notation:Location" xmi:id="_BuRG0mkFEe24rIYSlCjKHA"/> | ||
2918 | </children> | ||
2919 | <children xmi:type="notation:Node" xmi:id="_dTWMcGkFEe24rIYSlCjKHA" type="3010" element="_dSepwGkFEe24rIYSlCjKHA"> | ||
2920 | <styles xmi:type="notation:FontStyle" xmi:id="_dTWMcWkFEe24rIYSlCjKHA" fontName="Noto Sans" fontHeight="8"/> | ||
2921 | <layoutConstraint xmi:type="notation:Location" xmi:id="_dTWMcmkFEe24rIYSlCjKHA"/> | ||
2922 | </children> | ||
2923 | <children xmi:type="notation:Node" xmi:id="_eqflkGkFEe24rIYSlCjKHA" type="3010" element="_eqCSkGkFEe24rIYSlCjKHA"> | ||
2924 | <styles xmi:type="notation:FontStyle" xmi:id="_eqflkWkFEe24rIYSlCjKHA" fontName="Noto Sans" fontHeight="8"/> | ||
2925 | <layoutConstraint xmi:type="notation:Location" xmi:id="_eqflkmkFEe24rIYSlCjKHA"/> | ||
2926 | </children> | ||
2927 | <children xmi:type="notation:Node" xmi:id="_p92wMGkFEe24rIYSlCjKHA" type="3010" element="_p9Q6UGkFEe24rIYSlCjKHA"> | ||
2928 | <styles xmi:type="notation:FontStyle" xmi:id="_p92wMWkFEe24rIYSlCjKHA" fontName="Noto Sans" fontHeight="8"/> | ||
2929 | <layoutConstraint xmi:type="notation:Location" xmi:id="_p92wMmkFEe24rIYSlCjKHA"/> | ||
2930 | </children> | ||
2915 | <styles xmi:type="notation:SortingStyle" xmi:id="_QkXS9WTUEe2qdtyPWAtoxA"/> | 2931 | <styles xmi:type="notation:SortingStyle" xmi:id="_QkXS9WTUEe2qdtyPWAtoxA"/> |
2916 | <styles xmi:type="notation:FilteringStyle" xmi:id="_QkXS9mTUEe2qdtyPWAtoxA"/> | 2932 | <styles xmi:type="notation:FilteringStyle" xmi:id="_QkXS9mTUEe2qdtyPWAtoxA"/> |
2917 | </children> | 2933 | </children> |
2918 | <styles xmi:type="notation:ShapeStyle" xmi:id="_QkXS8WTUEe2qdtyPWAtoxA" fontName="Noto Sans" fontHeight="8"/> | 2934 | <styles xmi:type="notation:ShapeStyle" xmi:id="_QkXS8WTUEe2qdtyPWAtoxA" fontName="Noto Sans" fontHeight="8"/> |
2919 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QkXS8mTUEe2qdtyPWAtoxA" x="1958" y="448" height="155"/> | 2935 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QkXS8mTUEe2qdtyPWAtoxA" x="1958" y="448" height="215"/> |
2920 | </children> | 2936 | </children> |
2921 | <children xmi:type="notation:Node" xmi:id="_36XqIGTuEe2qdtyPWAtoxA" type="2003" element="_36CS8GTuEe2qdtyPWAtoxA"> | 2937 | <children xmi:type="notation:Node" xmi:id="_36XqIGTuEe2qdtyPWAtoxA" type="2003" element="_36CS8GTuEe2qdtyPWAtoxA"> |
2922 | <children xmi:type="notation:Node" xmi:id="_36YRMGTuEe2qdtyPWAtoxA" type="5007"/> | 2938 | <children xmi:type="notation:Node" xmi:id="_36YRMGTuEe2qdtyPWAtoxA" type="5007"/> |
@@ -3014,6 +3030,44 @@ | |||
3014 | <styles xmi:type="notation:ShapeStyle" xmi:id="_zs6moWgtEe24RpwpWgpkFQ" fontName="Noto Sans" fontHeight="8"/> | 3030 | <styles xmi:type="notation:ShapeStyle" xmi:id="_zs6moWgtEe24RpwpWgpkFQ" fontName="Noto Sans" fontHeight="8"/> |
3015 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_zs6momgtEe24RpwpWgpkFQ" x="2628" y="312" width="120" height="100"/> | 3031 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_zs6momgtEe24RpwpWgpkFQ" x="2628" y="312" width="120" height="100"/> |
3016 | </children> | 3032 | </children> |
3033 | <children xmi:type="notation:Node" xmi:id="_ZjfaEGkGEe24rIYSlCjKHA" type="2003" element="_Zi8AcGkGEe24rIYSlCjKHA"> | ||
3034 | <children xmi:type="notation:Node" xmi:id="_ZjkSkGkGEe24rIYSlCjKHA" type="5007"/> | ||
3035 | <children xmi:type="notation:Node" xmi:id="_ZjkSkWkGEe24rIYSlCjKHA" type="7004"> | ||
3036 | <children xmi:type="notation:Node" xmi:id="_aWMpYGkGEe24rIYSlCjKHA" type="3010" element="_aVgF0GkGEe24rIYSlCjKHA"> | ||
3037 | <styles xmi:type="notation:FontStyle" xmi:id="_aWMpYWkGEe24rIYSlCjKHA" fontColor="2697711" fontName="Noto Sans" fontHeight="8"/> | ||
3038 | <layoutConstraint xmi:type="notation:Location" xmi:id="_aWMpYmkGEe24rIYSlCjKHA"/> | ||
3039 | </children> | ||
3040 | <styles xmi:type="notation:SortingStyle" xmi:id="_ZjkSkmkGEe24rIYSlCjKHA"/> | ||
3041 | <styles xmi:type="notation:FilteringStyle" xmi:id="_ZjkSk2kGEe24rIYSlCjKHA"/> | ||
3042 | </children> | ||
3043 | <styles xmi:type="notation:ShapeStyle" xmi:id="_ZjfaEWkGEe24rIYSlCjKHA" fontName="Noto Sans" fontHeight="8"/> | ||
3044 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ZjfaEmkGEe24rIYSlCjKHA" x="2952" y="312" width="120" height="100"/> | ||
3045 | </children> | ||
3046 | <children xmi:type="notation:Node" xmi:id="_fdU7QGkGEe24rIYSlCjKHA" type="2003" element="_fdLKQGkGEe24rIYSlCjKHA"> | ||
3047 | <children xmi:type="notation:Node" xmi:id="_fdViUGkGEe24rIYSlCjKHA" type="5007"/> | ||
3048 | <children xmi:type="notation:Node" xmi:id="_fdViUWkGEe24rIYSlCjKHA" type="7004"> | ||
3049 | <children xmi:type="notation:Node" xmi:id="_fdWJYGkGEe24rIYSlCjKHA" type="3010" element="_fdPbx2kGEe24rIYSlCjKHA"> | ||
3050 | <styles xmi:type="notation:FontStyle" xmi:id="_fdWJYWkGEe24rIYSlCjKHA" fontName="Noto Sans" fontHeight="8"/> | ||
3051 | <layoutConstraint xmi:type="notation:Location" xmi:id="_fdWJYmkGEe24rIYSlCjKHA"/> | ||
3052 | </children> | ||
3053 | <children xmi:type="notation:Node" xmi:id="_fdWJY2kGEe24rIYSlCjKHA" type="3010" element="_fdPbyWkGEe24rIYSlCjKHA"> | ||
3054 | <styles xmi:type="notation:FontStyle" xmi:id="_fdWJZGkGEe24rIYSlCjKHA" fontName="Noto Sans" fontHeight="8"/> | ||
3055 | <layoutConstraint xmi:type="notation:Location" xmi:id="_fdWJZWkGEe24rIYSlCjKHA"/> | ||
3056 | </children> | ||
3057 | <children xmi:type="notation:Node" xmi:id="_fdWwcGkGEe24rIYSlCjKHA" type="3010" element="_fdQCwGkGEe24rIYSlCjKHA"> | ||
3058 | <styles xmi:type="notation:FontStyle" xmi:id="_fdWwcWkGEe24rIYSlCjKHA" fontName="Noto Sans" fontHeight="8"/> | ||
3059 | <layoutConstraint xmi:type="notation:Location" xmi:id="_fdWwcmkGEe24rIYSlCjKHA"/> | ||
3060 | </children> | ||
3061 | <children xmi:type="notation:Node" xmi:id="_fdWwc2kGEe24rIYSlCjKHA" type="3010" element="_fdQCwmkGEe24rIYSlCjKHA"> | ||
3062 | <styles xmi:type="notation:FontStyle" xmi:id="_fdWwdGkGEe24rIYSlCjKHA" fontName="Noto Sans" fontHeight="8"/> | ||
3063 | <layoutConstraint xmi:type="notation:Location" xmi:id="_fdWwdWkGEe24rIYSlCjKHA"/> | ||
3064 | </children> | ||
3065 | <styles xmi:type="notation:SortingStyle" xmi:id="_fdViUmkGEe24rIYSlCjKHA"/> | ||
3066 | <styles xmi:type="notation:FilteringStyle" xmi:id="_fdViU2kGEe24rIYSlCjKHA"/> | ||
3067 | </children> | ||
3068 | <styles xmi:type="notation:ShapeStyle" xmi:id="_fdU7QWkGEe24rIYSlCjKHA" fontName="Noto Sans" fontHeight="8"/> | ||
3069 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_fdU7QmkGEe24rIYSlCjKHA" x="2952" y="446"/> | ||
3070 | </children> | ||
3017 | <styles xmi:type="notation:DiagramStyle" xmi:id="_z1ff0l3lEe2LuOZzJ_LhLg"/> | 3071 | <styles xmi:type="notation:DiagramStyle" xmi:id="_z1ff0l3lEe2LuOZzJ_LhLg"/> |
3018 | <edges xmi:type="notation:Edge" xmi:id="_C-b04F3mEe2LuOZzJ_LhLg" type="4001" element="_C9_I8F3mEe2LuOZzJ_LhLg" source="_9ZUmgF3lEe2LuOZzJ_LhLg" target="_8bUtMF3lEe2LuOZzJ_LhLg"> | 3072 | <edges xmi:type="notation:Edge" xmi:id="_C-b04F3mEe2LuOZzJ_LhLg" type="4001" element="_C9_I8F3mEe2LuOZzJ_LhLg" source="_9ZUmgF3lEe2LuOZzJ_LhLg" target="_8bUtMF3lEe2LuOZzJ_LhLg"> |
3019 | <children xmi:type="notation:Node" xmi:id="_C-cb8F3mEe2LuOZzJ_LhLg" type="6001"> | 3073 | <children xmi:type="notation:Node" xmi:id="_C-cb8F3mEe2LuOZzJ_LhLg" type="6001"> |
@@ -3527,6 +3581,22 @@ | |||
3527 | <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_3zjr5mgtEe24RpwpWgpkFQ" id="(0.8135593220338984,0.0)"/> | 3581 | <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_3zjr5mgtEe24RpwpWgpkFQ" id="(0.8135593220338984,0.0)"/> |
3528 | <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_3zjr52gtEe24RpwpWgpkFQ" id="(0.5,0.5)"/> | 3582 | <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_3zjr52gtEe24RpwpWgpkFQ" id="(0.5,0.5)"/> |
3529 | </edges> | 3583 | </edges> |
3584 | <edges xmi:type="notation:Edge" xmi:id="_dTGfYGkGEe24rIYSlCjKHA" type="4001" element="_dSnXTmkGEe24rIYSlCjKHA" source="_ZjfaEGkGEe24rIYSlCjKHA" target="_87Ju4F4IEe2LuOZzJ_LhLg"> | ||
3585 | <children xmi:type="notation:Node" xmi:id="_dTHGcGkGEe24rIYSlCjKHA" type="6001"> | ||
3586 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_dTHGcWkGEe24rIYSlCjKHA" y="-10"/> | ||
3587 | </children> | ||
3588 | <children xmi:type="notation:Node" xmi:id="_dTHtgGkGEe24rIYSlCjKHA" type="6002"> | ||
3589 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_dTHtgWkGEe24rIYSlCjKHA" y="10"/> | ||
3590 | </children> | ||
3591 | <children xmi:type="notation:Node" xmi:id="_dTHtgmkGEe24rIYSlCjKHA" type="6003"> | ||
3592 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_dTHtg2kGEe24rIYSlCjKHA" y="10"/> | ||
3593 | </children> | ||
3594 | <styles xmi:type="notation:ConnectorStyle" xmi:id="_dTGfYWkGEe24rIYSlCjKHA" routing="Tree"/> | ||
3595 | <styles xmi:type="notation:FontStyle" xmi:id="_dTGfYmkGEe24rIYSlCjKHA" fontName="Noto Sans" fontHeight="8"/> | ||
3596 | <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_dTGfY2kGEe24rIYSlCjKHA" points="[0, 0, 350, 132]$[-350, -132, 0, 0]"/> | ||
3597 | <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_dTKJwGkGEe24rIYSlCjKHA" id="(0.6101694915254238,0.0)"/> | ||
3598 | <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_dTKJwWkGEe24rIYSlCjKHA" id="(0.5,0.5)"/> | ||
3599 | </edges> | ||
3530 | </data> | 3600 | </data> |
3531 | </ownedAnnotationEntries> | 3601 | </ownedAnnotationEntries> |
3532 | <ownedAnnotationEntries xmi:type="description:AnnotationEntry" uid="_z1k_YV3lEe2LuOZzJ_LhLg" source="DANNOTATION_CUSTOMIZATION_KEY"> | 3602 | <ownedAnnotationEntries xmi:type="description:AnnotationEntry" uid="_z1k_YV3lEe2LuOZzJ_LhLg" source="DANNOTATION_CUSTOMIZATION_KEY"> |
@@ -3927,7 +3997,7 @@ | |||
3927 | </ownedStyle> | 3997 | </ownedStyle> |
3928 | <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC_EReference']"/> | 3998 | <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC_EReference']"/> |
3929 | </ownedDiagramElements> | 3999 | </ownedDiagramElements> |
3930 | <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_86zJkF4IEe2LuOZzJ_LhLg" name="Constant" tooltipText="" outgoingEdges="_qYZuyGgtEe24RpwpWgpkFQ" incomingEdges="_JYWPtF4JEe2LuOZzJ_LhLg _JYW2c14JEe2LuOZzJ_LhLg _JYW2el4JEe2LuOZzJ_LhLg _3zQKBGgtEe24RpwpWgpkFQ" width="12" height="10"> | 4000 | <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_86zJkF4IEe2LuOZzJ_LhLg" name="Constant" tooltipText="" outgoingEdges="_qYZuyGgtEe24RpwpWgpkFQ" incomingEdges="_JYWPtF4JEe2LuOZzJ_LhLg _JYW2c14JEe2LuOZzJ_LhLg _JYW2el4JEe2LuOZzJ_LhLg _3zQKBGgtEe24RpwpWgpkFQ _dSnXTmkGEe24rIYSlCjKHA" width="12" height="10"> |
3931 | <target xmi:type="ecore:EClass" href="src/main/resources/model/problem.ecore#//Constant"/> | 4001 | <target xmi:type="ecore:EClass" href="src/main/resources/model/problem.ecore#//Constant"/> |
3932 | <semanticElements xmi:type="ecore:EClass" href="src/main/resources/model/problem.ecore#//Constant"/> | 4002 | <semanticElements xmi:type="ecore:EClass" href="src/main/resources/model/problem.ecore#//Constant"/> |
3933 | <arrangeConstraints>KEEP_LOCATION</arrangeConstraints> | 4003 | <arrangeConstraints>KEEP_LOCATION</arrangeConstraints> |
@@ -4257,6 +4327,38 @@ | |||
4257 | </ownedStyle> | 4327 | </ownedStyle> |
4258 | <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']"/> | 4328 | <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']"/> |
4259 | </ownedElements> | 4329 | </ownedElements> |
4330 | <ownedElements xmi:type="diagram:DNodeListElement" uid="_BtK6oGkFEe24rIYSlCjKHA" name="SUBSUMES" tooltipText=""> | ||
4331 | <target xmi:type="ecore:EEnumLiteral" href="src/main/resources/model/problem.ecore#//ComparisonOp/SUBSUMES"/> | ||
4332 | <semanticElements xmi:type="ecore:EEnumLiteral" href="src/main/resources/model/problem.ecore#//ComparisonOp/SUBSUMES"/> | ||
4333 | <ownedStyle xmi:type="diagram:BundledImage" uid="_BtMv0GkFEe24rIYSlCjKHA" labelAlignment="LEFT"> | ||
4334 | <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']/@style"/> | ||
4335 | </ownedStyle> | ||
4336 | <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']"/> | ||
4337 | </ownedElements> | ||
4338 | <ownedElements xmi:type="diagram:DNodeListElement" uid="_dSepwGkFEe24rIYSlCjKHA" name="SUBSUMED_BY" tooltipText=""> | ||
4339 | <target xmi:type="ecore:EEnumLiteral" href="src/main/resources/model/problem.ecore#//ComparisonOp/SUBSUMED_BY"/> | ||
4340 | <semanticElements xmi:type="ecore:EEnumLiteral" href="src/main/resources/model/problem.ecore#//ComparisonOp/SUBSUMED_BY"/> | ||
4341 | <ownedStyle xmi:type="diagram:BundledImage" uid="_dSfQ0GkFEe24rIYSlCjKHA" labelAlignment="LEFT"> | ||
4342 | <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']/@style"/> | ||
4343 | </ownedStyle> | ||
4344 | <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']"/> | ||
4345 | </ownedElements> | ||
4346 | <ownedElements xmi:type="diagram:DNodeListElement" uid="_eqCSkGkFEe24rIYSlCjKHA" name="ABS_EQ" tooltipText=""> | ||
4347 | <target xmi:type="ecore:EEnumLiteral" href="src/main/resources/model/problem.ecore#//ComparisonOp/ABS_EQ"/> | ||
4348 | <semanticElements xmi:type="ecore:EEnumLiteral" href="src/main/resources/model/problem.ecore#//ComparisonOp/ABS_EQ"/> | ||
4349 | <ownedStyle xmi:type="diagram:BundledImage" uid="_eqCSkWkFEe24rIYSlCjKHA" labelAlignment="LEFT"> | ||
4350 | <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']/@style"/> | ||
4351 | </ownedStyle> | ||
4352 | <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']"/> | ||
4353 | </ownedElements> | ||
4354 | <ownedElements xmi:type="diagram:DNodeListElement" uid="_p9Q6UGkFEe24rIYSlCjKHA" name="ABS_NOT_EQ" tooltipText=""> | ||
4355 | <target xmi:type="ecore:EEnumLiteral" href="src/main/resources/model/problem.ecore#//ComparisonOp/ABS_NOT_EQ"/> | ||
4356 | <semanticElements xmi:type="ecore:EEnumLiteral" href="src/main/resources/model/problem.ecore#//ComparisonOp/ABS_NOT_EQ"/> | ||
4357 | <ownedStyle xmi:type="diagram:BundledImage" uid="_p9RhYGkFEe24rIYSlCjKHA" labelAlignment="LEFT"> | ||
4358 | <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']/@style"/> | ||
4359 | </ownedStyle> | ||
4360 | <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']"/> | ||
4361 | </ownedElements> | ||
4260 | </ownedDiagramElements> | 4362 | </ownedDiagramElements> |
4261 | <ownedDiagramElements xmi:type="diagram:DEdge" uid="_UstBaGTUEe2qdtyPWAtoxA" sourceNode="_M-ZR0GTUEe2qdtyPWAtoxA" targetNode="_bTLuAF3tEe2LuOZzJ_LhLg"> | 4363 | <ownedDiagramElements xmi:type="diagram:DEdge" uid="_UstBaGTUEe2qdtyPWAtoxA" sourceNode="_M-ZR0GTUEe2qdtyPWAtoxA" targetNode="_bTLuAF3tEe2LuOZzJ_LhLg"> |
4262 | <target xmi:type="ecore:EClass" href="src/main/resources/model/problem.ecore#//ArithmeticBinaryExpr"/> | 4364 | <target xmi:type="ecore:EClass" href="src/main/resources/model/problem.ecore#//ArithmeticBinaryExpr"/> |
@@ -4530,6 +4632,80 @@ | |||
4530 | </ownedStyle> | 4632 | </ownedStyle> |
4531 | <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']"/> | 4633 | <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']"/> |
4532 | </ownedDiagramElements> | 4634 | </ownedDiagramElements> |
4635 | <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_Zi8AcGkGEe24rIYSlCjKHA" name="LogicConstant" tooltipText="" outgoingEdges="_dSnXTmkGEe24rIYSlCjKHA" width="12" height="10"> | ||
4636 | <target xmi:type="ecore:EClass" href="src/main/resources/model/problem.ecore#//LogicConstant"/> | ||
4637 | <semanticElements xmi:type="ecore:EClass" href="src/main/resources/model/problem.ecore#//LogicConstant"/> | ||
4638 | <arrangeConstraints>KEEP_LOCATION</arrangeConstraints> | ||
4639 | <arrangeConstraints>KEEP_SIZE</arrangeConstraints> | ||
4640 | <arrangeConstraints>KEEP_RATIO</arrangeConstraints> | ||
4641 | <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_byHN3GkGEe24rIYSlCjKHA" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216"> | ||
4642 | <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/> | ||
4643 | </ownedStyle> | ||
4644 | <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/> | ||
4645 | <ownedElements xmi:type="diagram:DNodeListElement" uid="_aVgF0GkGEe24rIYSlCjKHA" name="logicValue : LogicValue = TRUE" tooltipText=""> | ||
4646 | <target xmi:type="ecore:EAttribute" href="src/main/resources/model/problem.ecore#//LogicConstant/logicValue"/> | ||
4647 | <semanticElements xmi:type="ecore:EAttribute" href="src/main/resources/model/problem.ecore#//LogicConstant/logicValue"/> | ||
4648 | <ownedStyle xmi:type="diagram:BundledImage" uid="_byJC8WkGEe24rIYSlCjKHA" labelAlignment="LEFT"> | ||
4649 | <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']/@style"/> | ||
4650 | </ownedStyle> | ||
4651 | <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/> | ||
4652 | </ownedElements> | ||
4653 | </ownedDiagramElements> | ||
4654 | <ownedDiagramElements xmi:type="diagram:DEdge" uid="_dSnXTmkGEe24rIYSlCjKHA" sourceNode="_Zi8AcGkGEe24rIYSlCjKHA" targetNode="_86zJkF4IEe2LuOZzJ_LhLg"> | ||
4655 | <target xmi:type="ecore:EClass" href="src/main/resources/model/problem.ecore#//LogicConstant"/> | ||
4656 | <semanticElements xmi:type="ecore:EClass" href="src/main/resources/model/problem.ecore#//LogicConstant"/> | ||
4657 | <ownedStyle xmi:type="diagram:EdgeStyle" uid="_dSn-QGkGEe24rIYSlCjKHA" targetArrow="InputClosedArrow" routingStyle="tree"> | ||
4658 | <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']/@style"/> | ||
4659 | <beginLabelStyle xmi:type="diagram:BeginLabelStyle" uid="_dSn-QWkGEe24rIYSlCjKHA" showIcon="false"> | ||
4660 | <labelFormat>italic</labelFormat> | ||
4661 | </beginLabelStyle> | ||
4662 | <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_dSn-QmkGEe24rIYSlCjKHA" showIcon="false"/> | ||
4663 | </ownedStyle> | ||
4664 | <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']"/> | ||
4665 | </ownedDiagramElements> | ||
4666 | <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_fdLKQGkGEe24rIYSlCjKHA" name="LogicValue" tooltipText="" width="12" height="10"> | ||
4667 | <target xmi:type="ecore:EEnum" href="src/main/resources/model/problem.ecore#//LogicValue"/> | ||
4668 | <semanticElements xmi:type="ecore:EEnum" href="src/main/resources/model/problem.ecore#//LogicValue"/> | ||
4669 | <arrangeConstraints>KEEP_LOCATION</arrangeConstraints> | ||
4670 | <arrangeConstraints>KEEP_SIZE</arrangeConstraints> | ||
4671 | <arrangeConstraints>KEEP_RATIO</arrangeConstraints> | ||
4672 | <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_fdLKQWkGEe24rIYSlCjKHA" borderSize="1" borderSizeComputationExpression="1" borderColor="125,125,125" backgroundStyle="Liquid" foregroundColor="221,236,202"> | ||
4673 | <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@style"/> | ||
4674 | </ownedStyle> | ||
4675 | <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']"/> | ||
4676 | <ownedElements xmi:type="diagram:DNodeListElement" uid="_fdPbx2kGEe24rIYSlCjKHA" name="TRUE" tooltipText=""> | ||
4677 | <target xmi:type="ecore:EEnumLiteral" href="src/main/resources/model/problem.ecore#//LogicValue/TRUE"/> | ||
4678 | <semanticElements xmi:type="ecore:EEnumLiteral" href="src/main/resources/model/problem.ecore#//LogicValue/TRUE"/> | ||
4679 | <ownedStyle xmi:type="diagram:BundledImage" uid="_fdPbyGkGEe24rIYSlCjKHA" labelAlignment="LEFT"> | ||
4680 | <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']/@style"/> | ||
4681 | </ownedStyle> | ||
4682 | <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']"/> | ||
4683 | </ownedElements> | ||
4684 | <ownedElements xmi:type="diagram:DNodeListElement" uid="_fdPbyWkGEe24rIYSlCjKHA" name="FALSE" tooltipText=""> | ||
4685 | <target xmi:type="ecore:EEnumLiteral" href="src/main/resources/model/problem.ecore#//LogicValue/FALSE"/> | ||
4686 | <semanticElements xmi:type="ecore:EEnumLiteral" href="src/main/resources/model/problem.ecore#//LogicValue/FALSE"/> | ||
4687 | <ownedStyle xmi:type="diagram:BundledImage" uid="_fdPbymkGEe24rIYSlCjKHA" labelAlignment="LEFT"> | ||
4688 | <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']/@style"/> | ||
4689 | </ownedStyle> | ||
4690 | <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']"/> | ||
4691 | </ownedElements> | ||
4692 | <ownedElements xmi:type="diagram:DNodeListElement" uid="_fdQCwGkGEe24rIYSlCjKHA" name="UNKNOWN" tooltipText=""> | ||
4693 | <target xmi:type="ecore:EEnumLiteral" href="src/main/resources/model/problem.ecore#//LogicValue/UNKNOWN"/> | ||
4694 | <semanticElements xmi:type="ecore:EEnumLiteral" href="src/main/resources/model/problem.ecore#//LogicValue/UNKNOWN"/> | ||
4695 | <ownedStyle xmi:type="diagram:BundledImage" uid="_fdQCwWkGEe24rIYSlCjKHA" labelAlignment="LEFT"> | ||
4696 | <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']/@style"/> | ||
4697 | </ownedStyle> | ||
4698 | <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']"/> | ||
4699 | </ownedElements> | ||
4700 | <ownedElements xmi:type="diagram:DNodeListElement" uid="_fdQCwmkGEe24rIYSlCjKHA" name="ERROR" tooltipText=""> | ||
4701 | <target xmi:type="ecore:EEnumLiteral" href="src/main/resources/model/problem.ecore#//LogicValue/ERROR"/> | ||
4702 | <semanticElements xmi:type="ecore:EEnumLiteral" href="src/main/resources/model/problem.ecore#//LogicValue/ERROR"/> | ||
4703 | <ownedStyle xmi:type="diagram:BundledImage" uid="_fdQCw2kGEe24rIYSlCjKHA" labelAlignment="LEFT"> | ||
4704 | <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']/@style"/> | ||
4705 | </ownedStyle> | ||
4706 | <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']"/> | ||
4707 | </ownedElements> | ||
4708 | </ownedDiagramElements> | ||
4533 | <description xmi:type="description_1:DiagramDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']"/> | 4709 | <description xmi:type="description_1:DiagramDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']"/> |
4534 | <filterVariableHistory xmi:type="diagram:FilterVariableHistory" uid="_z1aAQF3lEe2LuOZzJ_LhLg"/> | 4710 | <filterVariableHistory xmi:type="diagram:FilterVariableHistory" uid="_z1aAQF3lEe2LuOZzJ_LhLg"/> |
4535 | <activatedLayers xmi:type="description_1:Layer" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer"/> | 4711 | <activatedLayers xmi:type="description_1:Layer" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer"/> |
@@ -4614,67 +4790,7 @@ | |||
4614 | <styles xmi:type="notation:FilteringStyle" xmi:id="_IhNHNmgpEe24RpwpWgpkFQ"/> | 4790 | <styles xmi:type="notation:FilteringStyle" xmi:id="_IhNHNmgpEe24RpwpWgpkFQ"/> |
4615 | </children> | 4791 | </children> |
4616 | <styles xmi:type="notation:ShapeStyle" xmi:id="_IhNHMWgpEe24RpwpWgpkFQ" fontName="Noto Sans" fontHeight="8" italic="true"/> | 4792 | <styles xmi:type="notation:ShapeStyle" xmi:id="_IhNHMWgpEe24RpwpWgpkFQ" fontName="Noto Sans" fontHeight="8" italic="true"/> |
4617 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_IhNHMmgpEe24RpwpWgpkFQ" x="674" y="684"/> | 4793 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_IhNHMmgpEe24RpwpWgpkFQ" x="636" y="356"/> |
4618 | </children> | ||
4619 | <children xmi:type="notation:Node" xmi:id="_8CJxQGhDEe2gzfo0wfORyw" type="2003" element="_8BPLQGhDEe2gzfo0wfORyw"> | ||
4620 | <children xmi:type="notation:Node" xmi:id="_8COCsGhDEe2gzfo0wfORyw" type="5007"/> | ||
4621 | <children xmi:type="notation:Node" xmi:id="_8COpwGhDEe2gzfo0wfORyw" type="7004"> | ||
4622 | <styles xmi:type="notation:SortingStyle" xmi:id="_8COpwWhDEe2gzfo0wfORyw"/> | ||
4623 | <styles xmi:type="notation:FilteringStyle" xmi:id="_8COpwmhDEe2gzfo0wfORyw"/> | ||
4624 | </children> | ||
4625 | <styles xmi:type="notation:ShapeStyle" xmi:id="_8CJxQWhDEe2gzfo0wfORyw" fontName="Noto Sans" fontHeight="8"/> | ||
4626 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_8CJxQmhDEe2gzfo0wfORyw" x="576" y="348" width="120" height="100"/> | ||
4627 | </children> | ||
4628 | <children xmi:type="notation:Node" xmi:id="__veXkGhDEe2gzfo0wfORyw" type="2003" element="__vBEkGhDEe2gzfo0wfORyw"> | ||
4629 | <children xmi:type="notation:Node" xmi:id="__veXk2hDEe2gzfo0wfORyw" type="5007"/> | ||
4630 | <children xmi:type="notation:Node" xmi:id="__veXlGhDEe2gzfo0wfORyw" type="7004"> | ||
4631 | <children xmi:type="notation:Node" xmi:id="_NBj4sGhEEe2gzfo0wfORyw" type="3010" element="_NA-p4GhEEe2gzfo0wfORyw"> | ||
4632 | <styles xmi:type="notation:FontStyle" xmi:id="_NBj4sWhEEe2gzfo0wfORyw" fontColor="2697711" fontName="Noto Sans" fontHeight="8"/> | ||
4633 | <layoutConstraint xmi:type="notation:Location" xmi:id="_NBj4smhEEe2gzfo0wfORyw"/> | ||
4634 | </children> | ||
4635 | <styles xmi:type="notation:SortingStyle" xmi:id="__veXlWhDEe2gzfo0wfORyw"/> | ||
4636 | <styles xmi:type="notation:FilteringStyle" xmi:id="__veXlmhDEe2gzfo0wfORyw"/> | ||
4637 | </children> | ||
4638 | <styles xmi:type="notation:ShapeStyle" xmi:id="__veXkWhDEe2gzfo0wfORyw" fontName="Noto Sans" fontHeight="8"/> | ||
4639 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="__veXkmhDEe2gzfo0wfORyw" x="468" y="516" width="135" height="100"/> | ||
4640 | </children> | ||
4641 | <children xmi:type="notation:Node" xmi:id="_CDdMYGhEEe2gzfo0wfORyw" type="2003" element="_CCxP4GhEEe2gzfo0wfORyw"> | ||
4642 | <children xmi:type="notation:Node" xmi:id="_CDdzcmhEEe2gzfo0wfORyw" type="5007"/> | ||
4643 | <children xmi:type="notation:Node" xmi:id="_CDdzc2hEEe2gzfo0wfORyw" type="7004"> | ||
4644 | <children xmi:type="notation:Node" xmi:id="_rVyFIGhEEe2gzfo0wfORyw" type="3010" element="_rVH90GhEEe2gzfo0wfORyw"> | ||
4645 | <styles xmi:type="notation:FontStyle" xmi:id="_rVyFIWhEEe2gzfo0wfORyw" fontColor="2697711" fontName="Noto Sans" fontHeight="8"/> | ||
4646 | <layoutConstraint xmi:type="notation:Location" xmi:id="_rVyFImhEEe2gzfo0wfORyw"/> | ||
4647 | </children> | ||
4648 | <styles xmi:type="notation:SortingStyle" xmi:id="_CDdzdGhEEe2gzfo0wfORyw"/> | ||
4649 | <styles xmi:type="notation:FilteringStyle" xmi:id="_CDdzdWhEEe2gzfo0wfORyw"/> | ||
4650 | </children> | ||
4651 | <styles xmi:type="notation:ShapeStyle" xmi:id="_CDdzcGhEEe2gzfo0wfORyw" fontName="Noto Sans" fontHeight="8"/> | ||
4652 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_CDdzcWhEEe2gzfo0wfORyw" x="660" y="516" width="147" height="100"/> | ||
4653 | </children> | ||
4654 | <children xmi:type="notation:Node" xmi:id="_L2dXgGhEEe2gzfo0wfORyw" type="2003" element="_L2YfAGhEEe2gzfo0wfORyw"> | ||
4655 | <children xmi:type="notation:Node" xmi:id="_L2d-kGhEEe2gzfo0wfORyw" type="5007"/> | ||
4656 | <children xmi:type="notation:Node" xmi:id="_L2d-kWhEEe2gzfo0wfORyw" type="7004"> | ||
4657 | <children xmi:type="notation:Node" xmi:id="_L2eloGhEEe2gzfo0wfORyw" type="3010" element="_L2a7Q2hEEe2gzfo0wfORyw"> | ||
4658 | <styles xmi:type="notation:FontStyle" xmi:id="_L2eloWhEEe2gzfo0wfORyw" fontName="Noto Sans" fontHeight="8"/> | ||
4659 | <layoutConstraint xmi:type="notation:Location" xmi:id="_L2elomhEEe2gzfo0wfORyw"/> | ||
4660 | </children> | ||
4661 | <children xmi:type="notation:Node" xmi:id="_L2elo2hEEe2gzfo0wfORyw" type="3010" element="_L2a7RWhEEe2gzfo0wfORyw"> | ||
4662 | <styles xmi:type="notation:FontStyle" xmi:id="_L2elpGhEEe2gzfo0wfORyw" fontName="Noto Sans" fontHeight="8"/> | ||
4663 | <layoutConstraint xmi:type="notation:Location" xmi:id="_L2elpWhEEe2gzfo0wfORyw"/> | ||
4664 | </children> | ||
4665 | <children xmi:type="notation:Node" xmi:id="_L2elpmhEEe2gzfo0wfORyw" type="3010" element="_L2biUWhEEe2gzfo0wfORyw"> | ||
4666 | <styles xmi:type="notation:FontStyle" xmi:id="_L2elp2hEEe2gzfo0wfORyw" fontName="Noto Sans" fontHeight="8"/> | ||
4667 | <layoutConstraint xmi:type="notation:Location" xmi:id="_L2elqGhEEe2gzfo0wfORyw"/> | ||
4668 | </children> | ||
4669 | <children xmi:type="notation:Node" xmi:id="_L2elqWhEEe2gzfo0wfORyw" type="3010" element="_L2biU2hEEe2gzfo0wfORyw"> | ||
4670 | <styles xmi:type="notation:FontStyle" xmi:id="_L2fMsGhEEe2gzfo0wfORyw" fontName="Noto Sans" fontHeight="8"/> | ||
4671 | <layoutConstraint xmi:type="notation:Location" xmi:id="_L2fMsWhEEe2gzfo0wfORyw"/> | ||
4672 | </children> | ||
4673 | <styles xmi:type="notation:SortingStyle" xmi:id="_L2d-kmhEEe2gzfo0wfORyw"/> | ||
4674 | <styles xmi:type="notation:FilteringStyle" xmi:id="_L2d-k2hEEe2gzfo0wfORyw"/> | ||
4675 | </children> | ||
4676 | <styles xmi:type="notation:ShapeStyle" xmi:id="_L2dXgWhEEe2gzfo0wfORyw" fontName="Noto Sans" fontHeight="8"/> | ||
4677 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_L2dXgmhEEe2gzfo0wfORyw" x="476" y="684"/> | ||
4678 | </children> | 4794 | </children> |
4679 | <styles xmi:type="notation:DiagramStyle" xmi:id="_xkD40l4eEe2rXNsIDUvqhw"/> | 4795 | <styles xmi:type="notation:DiagramStyle" xmi:id="_xkD40l4eEe2rXNsIDUvqhw"/> |
4680 | <edges xmi:type="notation:Edge" xmi:id="_z9sps14eEe2rXNsIDUvqhw" type="4001" element="_z9q0gF4eEe2rXNsIDUvqhw" source="_z9rbk14eEe2rXNsIDUvqhw" target="_z9sCoF4eEe2rXNsIDUvqhw"> | 4796 | <edges xmi:type="notation:Edge" xmi:id="_z9sps14eEe2rXNsIDUvqhw" type="4001" element="_z9q0gF4eEe2rXNsIDUvqhw" source="_z9rbk14eEe2rXNsIDUvqhw" target="_z9sCoF4eEe2rXNsIDUvqhw"> |
@@ -4773,69 +4889,21 @@ | |||
4773 | <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_AUWXYGTwEe2qdtyPWAtoxA" id="(0.0,0.061224489795918366)"/> | 4889 | <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_AUWXYGTwEe2qdtyPWAtoxA" id="(0.0,0.061224489795918366)"/> |
4774 | <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_AUWXYWTwEe2qdtyPWAtoxA" id="(1.0,0.061224489795918366)"/> | 4890 | <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_AUWXYWTwEe2qdtyPWAtoxA" id="(1.0,0.061224489795918366)"/> |
4775 | </edges> | 4891 | </edges> |
4776 | <edges xmi:type="notation:Edge" xmi:id="_9Qz8wGhDEe2gzfo0wfORyw" type="4001" element="_CxoVTGgpEe24RpwpWgpkFQ" source="_z9rbk14eEe2rXNsIDUvqhw" target="_8CJxQGhDEe2gzfo0wfORyw"> | 4892 | <edges xmi:type="notation:Edge" xmi:id="_jkascGkGEe24rIYSlCjKHA" type="4001" element="_CxoVTGgpEe24RpwpWgpkFQ" source="_z9rbk14eEe2rXNsIDUvqhw" target="_IhNHMGgpEe24RpwpWgpkFQ"> |
4777 | <children xmi:type="notation:Node" xmi:id="_9Q0j0GhDEe2gzfo0wfORyw" type="6001"> | 4893 | <children xmi:type="notation:Node" xmi:id="_jkbTg2kGEe24rIYSlCjKHA" type="6001"> |
4778 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_9Q0j0WhDEe2gzfo0wfORyw" x="-32" y="-16"/> | 4894 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_jkbThGkGEe24rIYSlCjKHA" x="-72" y="-16"/> |
4779 | </children> | ||
4780 | <children xmi:type="notation:Node" xmi:id="_9Q1K4GhDEe2gzfo0wfORyw" type="6002"> | ||
4781 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_9Q1K4WhDEe2gzfo0wfORyw" x="9" y="10"/> | ||
4782 | </children> | ||
4783 | <children xmi:type="notation:Node" xmi:id="_9Q1K4mhDEe2gzfo0wfORyw" type="6003"> | ||
4784 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_9Q1K42hDEe2gzfo0wfORyw" x="4" y="14"/> | ||
4785 | </children> | ||
4786 | <styles xmi:type="notation:ConnectorStyle" xmi:id="_9Qz8wWhDEe2gzfo0wfORyw" routing="Rectilinear"/> | ||
4787 | <styles xmi:type="notation:FontStyle" xmi:id="_9Qz8wmhDEe2gzfo0wfORyw" fontColor="7490599" fontName="Noto Sans" fontHeight="8"/> | ||
4788 | <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_9Qz8w2hDEe2gzfo0wfORyw" points="[13, 0, -175, -73]$[13, 46, -175, -27]$[191, 46, 3, -27]$[191, 70, 3, -3]"/> | ||
4789 | <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_9Q3nIGhDEe2gzfo0wfORyw" id="(0.6792452830188679,1.0)"/> | ||
4790 | <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_9Q4OMGhDEe2gzfo0wfORyw" id="(0.4661016949152542,0.030612244897959183)"/> | ||
4791 | </edges> | ||
4792 | <edges xmi:type="notation:Edge" xmi:id="_FXFgUGhEEe2gzfo0wfORyw" type="4001" element="_FWwwQmhEEe2gzfo0wfORyw" source="__veXkGhDEe2gzfo0wfORyw" target="_8CJxQGhDEe2gzfo0wfORyw"> | ||
4793 | <children xmi:type="notation:Node" xmi:id="_FXFgVGhEEe2gzfo0wfORyw" type="6001"> | ||
4794 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_FXFgVWhEEe2gzfo0wfORyw" y="-10"/> | ||
4795 | </children> | ||
4796 | <children xmi:type="notation:Node" xmi:id="_FXFgVmhEEe2gzfo0wfORyw" type="6002"> | ||
4797 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_FXFgV2hEEe2gzfo0wfORyw" y="10"/> | ||
4798 | </children> | ||
4799 | <children xmi:type="notation:Node" xmi:id="_FXFgWGhEEe2gzfo0wfORyw" type="6003"> | ||
4800 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_FXFgWWhEEe2gzfo0wfORyw" y="10"/> | ||
4801 | </children> | ||
4802 | <styles xmi:type="notation:ConnectorStyle" xmi:id="_FXFgUWhEEe2gzfo0wfORyw" routing="Tree"/> | ||
4803 | <styles xmi:type="notation:FontStyle" xmi:id="_FXFgUmhEEe2gzfo0wfORyw" fontName="Noto Sans" fontHeight="8"/> | ||
4804 | <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_FXFgU2hEEe2gzfo0wfORyw" points="[0, 0, -120, 70]$[120, -70, 0, 0]"/> | ||
4805 | <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_FXGHYGhEEe2gzfo0wfORyw" id="(0.45112781954887216,0.0)"/> | ||
4806 | <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_FXGHYWhEEe2gzfo0wfORyw" id="(0.5,0.5)"/> | ||
4807 | </edges> | ||
4808 | <edges xmi:type="notation:Edge" xmi:id="_FtE-cGhEEe2gzfo0wfORyw" type="4001" element="_FslPPGhEEe2gzfo0wfORyw" source="_CDdMYGhEEe2gzfo0wfORyw" target="_8CJxQGhDEe2gzfo0wfORyw"> | ||
4809 | <children xmi:type="notation:Node" xmi:id="_FtE-dGhEEe2gzfo0wfORyw" type="6001"> | ||
4810 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_FtE-dWhEEe2gzfo0wfORyw" y="-10"/> | ||
4811 | </children> | ||
4812 | <children xmi:type="notation:Node" xmi:id="_FtE-dmhEEe2gzfo0wfORyw" type="6002"> | ||
4813 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_FtE-d2hEEe2gzfo0wfORyw" y="10"/> | ||
4814 | </children> | ||
4815 | <children xmi:type="notation:Node" xmi:id="_FtFlgGhEEe2gzfo0wfORyw" type="6003"> | ||
4816 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_FtFlgWhEEe2gzfo0wfORyw" y="10"/> | ||
4817 | </children> | ||
4818 | <styles xmi:type="notation:ConnectorStyle" xmi:id="_FtE-cWhEEe2gzfo0wfORyw" routing="Tree"/> | ||
4819 | <styles xmi:type="notation:FontStyle" xmi:id="_FtE-cmhEEe2gzfo0wfORyw" fontName="Noto Sans" fontHeight="8"/> | ||
4820 | <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_FtE-c2hEEe2gzfo0wfORyw" points="[0, 0, 132, 70]$[-132, -70, 0, 0]"/> | ||
4821 | <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_FtFlgmhEEe2gzfo0wfORyw" id="(0.5793103448275863,0.0)"/> | ||
4822 | <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_FtFlg2hEEe2gzfo0wfORyw" id="(0.4661016949152542,0.030612244897959183)"/> | ||
4823 | </edges> | ||
4824 | <edges xmi:type="notation:Edge" xmi:id="_HNbW4GhEEe2gzfo0wfORyw" type="4001" element="_HNHN1mhEEe2gzfo0wfORyw" source="_CDdMYGhEEe2gzfo0wfORyw" target="_IhNHMGgpEe24RpwpWgpkFQ"> | ||
4825 | <children xmi:type="notation:Node" xmi:id="_HNbW5GhEEe2gzfo0wfORyw" type="6001"> | ||
4826 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_HNbW5WhEEe2gzfo0wfORyw" x="-5" y="-32"/> | ||
4827 | </children> | 4895 | </children> |
4828 | <children xmi:type="notation:Node" xmi:id="_HNbW5mhEEe2gzfo0wfORyw" type="6002"> | 4896 | <children xmi:type="notation:Node" xmi:id="_jkbThWkGEe24rIYSlCjKHA" type="6002"> |
4829 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_HNbW52hEEe2gzfo0wfORyw" y="10"/> | 4897 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_jkbThmkGEe24rIYSlCjKHA" x="52" y="10"/> |
4830 | </children> | 4898 | </children> |
4831 | <children xmi:type="notation:Node" xmi:id="_HNb98GhEEe2gzfo0wfORyw" type="6003"> | 4899 | <children xmi:type="notation:Node" xmi:id="_jkbTh2kGEe24rIYSlCjKHA" type="6003"> |
4832 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_HNb98WhEEe2gzfo0wfORyw" y="10"/> | 4900 | <layoutConstraint xmi:type="notation:Bounds" xmi:id="_jkbTiGkGEe24rIYSlCjKHA" x="6" y="23"/> |
4833 | </children> | 4901 | </children> |
4834 | <styles xmi:type="notation:ConnectorStyle" xmi:id="_HNbW4WhEEe2gzfo0wfORyw" routing="Rectilinear"/> | 4902 | <styles xmi:type="notation:ConnectorStyle" xmi:id="_jkbTgGkGEe24rIYSlCjKHA" routing="Rectilinear"/> |
4835 | <styles xmi:type="notation:FontStyle" xmi:id="_HNbW4mhEEe2gzfo0wfORyw" fontColor="7490599" fontName="Noto Sans" fontHeight="8"/> | 4903 | <styles xmi:type="notation:FontStyle" xmi:id="_jkbTgWkGEe24rIYSlCjKHA" fontColor="7490599" fontName="Noto Sans" fontHeight="8"/> |
4836 | <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_HNbW42hEEe2gzfo0wfORyw" points="[0, 0, 0, -70]$[0, 70, 0, 0]"/> | 4904 | <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_jkbTgmkGEe24rIYSlCjKHA" points="[13, 0, -225, -91]$[13, 46, -225, -45]$[251, 46, 13, -45]$[251, 78, 13, -13]"/> |
4837 | <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_HNb98mhEEe2gzfo0wfORyw" id="(0.503448275862069,1.0)"/> | 4905 | <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_jkchoGkGEe24rIYSlCjKHA" id="(0.6792452830188679,1.0)"/> |
4838 | <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_HNb982hEEe2gzfo0wfORyw" id="(0.5,0.0)"/> | 4906 | <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_jkchoWkGEe24rIYSlCjKHA" id="(0.3813559322033898,0.1326530612244898)"/> |
4839 | </edges> | 4907 | </edges> |
4840 | </data> | 4908 | </data> |
4841 | </ownedAnnotationEntries> | 4909 | </ownedAnnotationEntries> |
@@ -5017,7 +5085,7 @@ | |||
5017 | </ownedStyle> | 5085 | </ownedStyle> |
5018 | <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC_EReference']"/> | 5086 | <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC_EReference']"/> |
5019 | </ownedDiagramElements> | 5087 | </ownedDiagramElements> |
5020 | <ownedDiagramElements xmi:type="diagram:DEdge" uid="_CxoVTGgpEe24RpwpWgpkFQ" name="[0..1] value" sourceNode="_z9nxMF4eEe2rXNsIDUvqhw" targetNode="_8BPLQGhDEe2gzfo0wfORyw"> | 5088 | <ownedDiagramElements xmi:type="diagram:DEdge" uid="_CxoVTGgpEe24RpwpWgpkFQ" name="[0..1] value" sourceNode="_z9nxMF4eEe2rXNsIDUvqhw" targetNode="_IhJc0GgpEe24RpwpWgpkFQ"> |
5021 | <target xmi:type="ecore:EReference" href="src/main/resources/model/problem.ecore#//Assertion/value"/> | 5089 | <target xmi:type="ecore:EReference" href="src/main/resources/model/problem.ecore#//Assertion/value"/> |
5022 | <semanticElements xmi:type="ecore:EReference" href="src/main/resources/model/problem.ecore#//Assertion/value"/> | 5090 | <semanticElements xmi:type="ecore:EReference" href="src/main/resources/model/problem.ecore#//Assertion/value"/> |
5023 | <ownedStyle xmi:type="diagram:EdgeStyle" uid="_Gl7GTGgpEe24RpwpWgpkFQ" description="_z9q0gV4eEe2rXNsIDUvqhw" sourceArrow="FillDiamond" routingStyle="manhattan" strokeColor="0,0,0"> | 5091 | <ownedStyle xmi:type="diagram:EdgeStyle" uid="_Gl7GTGgpEe24RpwpWgpkFQ" description="_z9q0gV4eEe2rXNsIDUvqhw" sourceArrow="FillDiamond" routingStyle="manhattan" strokeColor="0,0,0"> |
@@ -5030,7 +5098,7 @@ | |||
5030 | </ownedStyle> | 5098 | </ownedStyle> |
5031 | <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC_EReference']"/> | 5099 | <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC_EReference']"/> |
5032 | </ownedDiagramElements> | 5100 | </ownedDiagramElements> |
5033 | <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_IhJc0GgpEe24RpwpWgpkFQ" name="Expr" tooltipText="" incomingEdges="_HNHN1mhEEe2gzfo0wfORyw" width="12" height="10"> | 5101 | <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_IhJc0GgpEe24RpwpWgpkFQ" name="Expr" tooltipText="" incomingEdges="_CxoVTGgpEe24RpwpWgpkFQ" width="12" height="10"> |
5034 | <target xmi:type="ecore:EClass" href="src/main/resources/model/problem.ecore#//Expr"/> | 5102 | <target xmi:type="ecore:EClass" href="src/main/resources/model/problem.ecore#//Expr"/> |
5035 | <semanticElements xmi:type="ecore:EClass" href="src/main/resources/model/problem.ecore#//Expr"/> | 5103 | <semanticElements xmi:type="ecore:EClass" href="src/main/resources/model/problem.ecore#//Expr"/> |
5036 | <arrangeConstraints>KEEP_LOCATION</arrangeConstraints> | 5104 | <arrangeConstraints>KEEP_LOCATION</arrangeConstraints> |
@@ -5042,136 +5110,6 @@ | |||
5042 | </ownedStyle> | 5110 | </ownedStyle> |
5043 | <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/> | 5111 | <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/> |
5044 | </ownedDiagramElements> | 5112 | </ownedDiagramElements> |
5045 | <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_8BPLQGhDEe2gzfo0wfORyw" name="AssertionValue" tooltipText="" incomingEdges="_CxoVTGgpEe24RpwpWgpkFQ _FWwwQmhEEe2gzfo0wfORyw _FslPPGhEEe2gzfo0wfORyw" width="12" height="10"> | ||
5046 | <target xmi:type="ecore:EClass" href="src/main/resources/model/problem.ecore#//AssertionValue"/> | ||
5047 | <semanticElements xmi:type="ecore:EClass" href="src/main/resources/model/problem.ecore#//AssertionValue"/> | ||
5048 | <arrangeConstraints>KEEP_LOCATION</arrangeConstraints> | ||
5049 | <arrangeConstraints>KEEP_SIZE</arrangeConstraints> | ||
5050 | <arrangeConstraints>KEEP_RATIO</arrangeConstraints> | ||
5051 | <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="__eBbM2hDEe2gzfo0wfORyw" iconPath="/org.eclipse.emf.ecoretools.design/icons/full/obj16/EClass_abstract.gif" borderSize="1" borderSizeComputationExpression="1" borderColor="125,125,125" backgroundStyle="Liquid" foregroundColor="228,228,228"> | ||
5052 | <labelFormat>italic</labelFormat> | ||
5053 | <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@conditionnalStyles.1/@style"/> | ||
5054 | </ownedStyle> | ||
5055 | <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/> | ||
5056 | </ownedDiagramElements> | ||
5057 | <ownedDiagramElements xmi:type="diagram:DNodeList" uid="__vBEkGhDEe2gzfo0wfORyw" name="LogicAssertionValue" tooltipText="" outgoingEdges="_FWwwQmhEEe2gzfo0wfORyw" width="12" height="10"> | ||
5058 | <target xmi:type="ecore:EClass" href="src/main/resources/model/problem.ecore#//LogicAssertionValue"/> | ||
5059 | <semanticElements xmi:type="ecore:EClass" href="src/main/resources/model/problem.ecore#//LogicAssertionValue"/> | ||
5060 | <arrangeConstraints>KEEP_LOCATION</arrangeConstraints> | ||
5061 | <arrangeConstraints>KEEP_SIZE</arrangeConstraints> | ||
5062 | <arrangeConstraints>KEEP_RATIO</arrangeConstraints> | ||
5063 | <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_OEMabmhEEe2gzfo0wfORyw" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216"> | ||
5064 | <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/> | ||
5065 | </ownedStyle> | ||
5066 | <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/> | ||
5067 | <ownedElements xmi:type="diagram:DNodeListElement" uid="_NA-p4GhEEe2gzfo0wfORyw" name="logicValue : LogicValue = TRUE" tooltipText=""> | ||
5068 | <target xmi:type="ecore:EAttribute" href="src/main/resources/model/problem.ecore#//LogicAssertionValue/logicValue"/> | ||
5069 | <semanticElements xmi:type="ecore:EAttribute" href="src/main/resources/model/problem.ecore#//LogicAssertionValue/logicValue"/> | ||
5070 | <ownedStyle xmi:type="diagram:BundledImage" uid="_OENogWhEEe2gzfo0wfORyw" labelAlignment="LEFT"> | ||
5071 | <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']/@style"/> | ||
5072 | </ownedStyle> | ||
5073 | <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/> | ||
5074 | </ownedElements> | ||
5075 | </ownedDiagramElements> | ||
5076 | <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_CCxP4GhEEe2gzfo0wfORyw" name="ExprAssertionValue" tooltipText="" outgoingEdges="_FslPPGhEEe2gzfo0wfORyw _HNHN1mhEEe2gzfo0wfORyw" width="12" height="10"> | ||
5077 | <target xmi:type="ecore:EClass" href="src/main/resources/model/problem.ecore#//ExprAssertionValue"/> | ||
5078 | <semanticElements xmi:type="ecore:EClass" href="src/main/resources/model/problem.ecore#//ExprAssertionValue"/> | ||
5079 | <arrangeConstraints>KEEP_LOCATION</arrangeConstraints> | ||
5080 | <arrangeConstraints>KEEP_SIZE</arrangeConstraints> | ||
5081 | <arrangeConstraints>KEEP_RATIO</arrangeConstraints> | ||
5082 | <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_sP6yM2hEEe2gzfo0wfORyw" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216"> | ||
5083 | <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/> | ||
5084 | </ownedStyle> | ||
5085 | <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/> | ||
5086 | <ownedElements xmi:type="diagram:DNodeListElement" uid="_rVH90GhEEe2gzfo0wfORyw" name="range : EBoolean = false" tooltipText=""> | ||
5087 | <target xmi:type="ecore:EAttribute" href="src/main/resources/model/problem.ecore#//ExprAssertionValue/range"/> | ||
5088 | <semanticElements xmi:type="ecore:EAttribute" href="src/main/resources/model/problem.ecore#//ExprAssertionValue/range"/> | ||
5089 | <ownedStyle xmi:type="diagram:BundledImage" uid="_sP8AQmhEEe2gzfo0wfORyw" labelAlignment="LEFT"> | ||
5090 | <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']/@style"/> | ||
5091 | </ownedStyle> | ||
5092 | <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/> | ||
5093 | </ownedElements> | ||
5094 | </ownedDiagramElements> | ||
5095 | <ownedDiagramElements xmi:type="diagram:DEdge" uid="_FWwwQmhEEe2gzfo0wfORyw" sourceNode="__vBEkGhDEe2gzfo0wfORyw" targetNode="_8BPLQGhDEe2gzfo0wfORyw"> | ||
5096 | <target xmi:type="ecore:EClass" href="src/main/resources/model/problem.ecore#//LogicAssertionValue"/> | ||
5097 | <semanticElements xmi:type="ecore:EClass" href="src/main/resources/model/problem.ecore#//LogicAssertionValue"/> | ||
5098 | <ownedStyle xmi:type="diagram:EdgeStyle" uid="_OEPdxWhEEe2gzfo0wfORyw" targetArrow="InputClosedArrow" routingStyle="tree"> | ||
5099 | <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']/@style"/> | ||
5100 | <beginLabelStyle xmi:type="diagram:BeginLabelStyle" uid="_OEPdxmhEEe2gzfo0wfORyw" showIcon="false"> | ||
5101 | <labelFormat>italic</labelFormat> | ||
5102 | </beginLabelStyle> | ||
5103 | <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_OEPdx2hEEe2gzfo0wfORyw" showIcon="false"/> | ||
5104 | </ownedStyle> | ||
5105 | <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']"/> | ||
5106 | </ownedDiagramElements> | ||
5107 | <ownedDiagramElements xmi:type="diagram:DEdge" uid="_FslPPGhEEe2gzfo0wfORyw" sourceNode="_CCxP4GhEEe2gzfo0wfORyw" targetNode="_8BPLQGhDEe2gzfo0wfORyw"> | ||
5108 | <target xmi:type="ecore:EClass" href="src/main/resources/model/problem.ecore#//ExprAssertionValue"/> | ||
5109 | <semanticElements xmi:type="ecore:EClass" href="src/main/resources/model/problem.ecore#//ExprAssertionValue"/> | ||
5110 | <ownedStyle xmi:type="diagram:EdgeStyle" uid="_sP91iGhEEe2gzfo0wfORyw" targetArrow="InputClosedArrow" routingStyle="tree"> | ||
5111 | <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']/@style"/> | ||
5112 | <beginLabelStyle xmi:type="diagram:BeginLabelStyle" uid="_sP91iWhEEe2gzfo0wfORyw" showIcon="false"> | ||
5113 | <labelFormat>italic</labelFormat> | ||
5114 | </beginLabelStyle> | ||
5115 | <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_sP91imhEEe2gzfo0wfORyw" showIcon="false"/> | ||
5116 | </ownedStyle> | ||
5117 | <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']"/> | ||
5118 | </ownedDiagramElements> | ||
5119 | <ownedDiagramElements xmi:type="diagram:DEdge" uid="_HNHN1mhEEe2gzfo0wfORyw" name="[0..1] body" sourceNode="_CCxP4GhEEe2gzfo0wfORyw" targetNode="_IhJc0GgpEe24RpwpWgpkFQ"> | ||
5120 | <target xmi:type="ecore:EReference" href="src/main/resources/model/problem.ecore#//ExprAssertionValue/body"/> | ||
5121 | <semanticElements xmi:type="ecore:EReference" href="src/main/resources/model/problem.ecore#//ExprAssertionValue/body"/> | ||
5122 | <ownedStyle xmi:type="diagram:EdgeStyle" uid="_HNHN12hEEe2gzfo0wfORyw" description="_z9q0gV4eEe2rXNsIDUvqhw" sourceArrow="FillDiamond" routingStyle="manhattan" strokeColor="0,0,0"> | ||
5123 | <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_HNHN2WhEEe2gzfo0wfORyw" showIcon="false"> | ||
5124 | <customFeatures>labelSize</customFeatures> | ||
5125 | </centerLabelStyle> | ||
5126 | <endLabelStyle xmi:type="diagram:EndLabelStyle" uid="_HNHN2GhEEe2gzfo0wfORyw" showIcon="false" labelColor="39,76,114"> | ||
5127 | <customFeatures>labelSize</customFeatures> | ||
5128 | </endLabelStyle> | ||
5129 | </ownedStyle> | ||
5130 | <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC_EReference']"/> | ||
5131 | </ownedDiagramElements> | ||
5132 | <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_L2YfAGhEEe2gzfo0wfORyw" name="LogicValue" tooltipText="" width="12" height="10"> | ||
5133 | <target xmi:type="ecore:EEnum" href="src/main/resources/model/problem.ecore#//LogicValue"/> | ||
5134 | <semanticElements xmi:type="ecore:EEnum" href="src/main/resources/model/problem.ecore#//LogicValue"/> | ||
5135 | <arrangeConstraints>KEEP_LOCATION</arrangeConstraints> | ||
5136 | <arrangeConstraints>KEEP_SIZE</arrangeConstraints> | ||
5137 | <arrangeConstraints>KEEP_RATIO</arrangeConstraints> | ||
5138 | <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_L2YfAWhEEe2gzfo0wfORyw" borderSize="1" borderSizeComputationExpression="1" borderColor="125,125,125" backgroundStyle="Liquid" foregroundColor="221,236,202"> | ||
5139 | <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@style"/> | ||
5140 | </ownedStyle> | ||
5141 | <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']"/> | ||
5142 | <ownedElements xmi:type="diagram:DNodeListElement" uid="_L2a7Q2hEEe2gzfo0wfORyw" name="TRUE" tooltipText=""> | ||
5143 | <target xmi:type="ecore:EEnumLiteral" href="src/main/resources/model/problem.ecore#//LogicValue/TRUE"/> | ||
5144 | <semanticElements xmi:type="ecore:EEnumLiteral" href="src/main/resources/model/problem.ecore#//LogicValue/TRUE"/> | ||
5145 | <ownedStyle xmi:type="diagram:BundledImage" uid="_L2a7RGhEEe2gzfo0wfORyw" labelAlignment="LEFT"> | ||
5146 | <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']/@style"/> | ||
5147 | </ownedStyle> | ||
5148 | <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']"/> | ||
5149 | </ownedElements> | ||
5150 | <ownedElements xmi:type="diagram:DNodeListElement" uid="_L2a7RWhEEe2gzfo0wfORyw" name="FALSE" tooltipText=""> | ||
5151 | <target xmi:type="ecore:EEnumLiteral" href="src/main/resources/model/problem.ecore#//LogicValue/FALSE"/> | ||
5152 | <semanticElements xmi:type="ecore:EEnumLiteral" href="src/main/resources/model/problem.ecore#//LogicValue/FALSE"/> | ||
5153 | <ownedStyle xmi:type="diagram:BundledImage" uid="_L2biUGhEEe2gzfo0wfORyw" labelAlignment="LEFT"> | ||
5154 | <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']/@style"/> | ||
5155 | </ownedStyle> | ||
5156 | <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']"/> | ||
5157 | </ownedElements> | ||
5158 | <ownedElements xmi:type="diagram:DNodeListElement" uid="_L2biUWhEEe2gzfo0wfORyw" name="UNKNOWN" tooltipText=""> | ||
5159 | <target xmi:type="ecore:EEnumLiteral" href="src/main/resources/model/problem.ecore#//LogicValue/UNKNOWN"/> | ||
5160 | <semanticElements xmi:type="ecore:EEnumLiteral" href="src/main/resources/model/problem.ecore#//LogicValue/UNKNOWN"/> | ||
5161 | <ownedStyle xmi:type="diagram:BundledImage" uid="_L2biUmhEEe2gzfo0wfORyw" labelAlignment="LEFT"> | ||
5162 | <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']/@style"/> | ||
5163 | </ownedStyle> | ||
5164 | <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']"/> | ||
5165 | </ownedElements> | ||
5166 | <ownedElements xmi:type="diagram:DNodeListElement" uid="_L2biU2hEEe2gzfo0wfORyw" name="ERROR" tooltipText=""> | ||
5167 | <target xmi:type="ecore:EEnumLiteral" href="src/main/resources/model/problem.ecore#//LogicValue/ERROR"/> | ||
5168 | <semanticElements xmi:type="ecore:EEnumLiteral" href="src/main/resources/model/problem.ecore#//LogicValue/ERROR"/> | ||
5169 | <ownedStyle xmi:type="diagram:BundledImage" uid="_L2biVGhEEe2gzfo0wfORyw" labelAlignment="LEFT"> | ||
5170 | <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']/@style"/> | ||
5171 | </ownedStyle> | ||
5172 | <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']"/> | ||
5173 | </ownedElements> | ||
5174 | </ownedDiagramElements> | ||
5175 | <description xmi:type="description_1:DiagramDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']"/> | 5113 | <description xmi:type="description_1:DiagramDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']"/> |
5176 | <filterVariableHistory xmi:type="diagram:FilterVariableHistory" uid="_xj8kEF4eEe2rXNsIDUvqhw"/> | 5114 | <filterVariableHistory xmi:type="diagram:FilterVariableHistory" uid="_xj8kEF4eEe2rXNsIDUvqhw"/> |
5177 | <activatedLayers xmi:type="description_1:Layer" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer"/> | 5115 | <activatedLayers xmi:type="description_1:Layer" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer"/> |
diff --git a/subprojects/language-model/src/main/resources/model/problem.ecore b/subprojects/language-model/src/main/resources/model/problem.ecore index 314639c1..2d86382d 100644 --- a/subprojects/language-model/src/main/resources/model/problem.ecore +++ b/subprojects/language-model/src/main/resources/model/problem.ecore | |||
@@ -54,7 +54,7 @@ | |||
54 | <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" |
55 | defaultValueLiteral="false"/> | 55 | defaultValueLiteral="false"/> |
56 | <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" | 57 | <eStructuralFeatures xsi:type="ecore:EReference" name="value" eType="#//Expr" |
58 | containment="true"/> | 58 | containment="true"/> |
59 | </eClassifiers> | 59 | </eClassifiers> |
60 | <eClassifiers xsi:type="ecore:EClass" name="Node" eSuperTypes="#//VariableOrNode"/> | 60 | <eClassifiers xsi:type="ecore:EClass" name="Node" eSuperTypes="#//VariableOrNode"/> |
@@ -159,6 +159,10 @@ | |||
159 | <eLiterals name="EQ" value="4"/> | 159 | <eLiterals name="EQ" value="4"/> |
160 | <eLiterals name="NOT_EQ" value="5"/> | 160 | <eLiterals name="NOT_EQ" value="5"/> |
161 | <eLiterals name="IN" value="6"/> | 161 | <eLiterals name="IN" value="6"/> |
162 | <eLiterals name="SUBSUMES" value="7"/> | ||
163 | <eLiterals name="SUBSUMED_BY" value="8"/> | ||
164 | <eLiterals name="ABS_EQ" value="9"/> | ||
165 | <eLiterals name="ABS_NOT_EQ" value="10"/> | ||
162 | </eClassifiers> | 166 | </eClassifiers> |
163 | <eClassifiers xsi:type="ecore:EEnum" name="ReferenceKind"> | 167 | <eClassifiers xsi:type="ecore:EEnum" name="ReferenceKind"> |
164 | <eLiterals name="REFERENCE" value="1"/> | 168 | <eLiterals name="REFERENCE" value="1"/> |
@@ -257,12 +261,7 @@ | |||
257 | <eLiterals name="REAL" value="1"/> | 261 | <eLiterals name="REAL" value="1"/> |
258 | <eLiterals name="STRING" value="2"/> | 262 | <eLiterals name="STRING" value="2"/> |
259 | </eClassifiers> | 263 | </eClassifiers> |
260 | <eClassifiers xsi:type="ecore:EClass" name="AssertionValue" abstract="true"/> | 264 | <eClassifiers xsi:type="ecore:EClass" name="LogicConstant" eSuperTypes="#//Constant"> |
261 | <eClassifiers xsi:type="ecore:EClass" name="LogicAssertionValue" eSuperTypes="#//AssertionValue"> | ||
262 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="logicValue" eType="#//LogicValue"/> | 265 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="logicValue" eType="#//LogicValue"/> |
263 | </eClassifiers> | 266 | </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> | ||
268 | </ecore:EPackage> | 267 | </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 c5d7c0ea..5767d18d 100644 --- a/subprojects/language-model/src/main/resources/model/problem.genmodel +++ b/subprojects/language-model/src/main/resources/model/problem.genmodel | |||
@@ -30,6 +30,10 @@ | |||
30 | <genEnumLiterals ecoreEnumLiteral="problem.ecore#//ComparisonOp/EQ"/> | 30 | <genEnumLiterals ecoreEnumLiteral="problem.ecore#//ComparisonOp/EQ"/> |
31 | <genEnumLiterals ecoreEnumLiteral="problem.ecore#//ComparisonOp/NOT_EQ"/> | 31 | <genEnumLiterals ecoreEnumLiteral="problem.ecore#//ComparisonOp/NOT_EQ"/> |
32 | <genEnumLiterals ecoreEnumLiteral="problem.ecore#//ComparisonOp/IN"/> | 32 | <genEnumLiterals ecoreEnumLiteral="problem.ecore#//ComparisonOp/IN"/> |
33 | <genEnumLiterals ecoreEnumLiteral="problem.ecore#//ComparisonOp/SUBSUMES"/> | ||
34 | <genEnumLiterals ecoreEnumLiteral="problem.ecore#//ComparisonOp/SUBSUMED_BY"/> | ||
35 | <genEnumLiterals ecoreEnumLiteral="problem.ecore#//ComparisonOp/ABS_EQ"/> | ||
36 | <genEnumLiterals ecoreEnumLiteral="problem.ecore#//ComparisonOp/ABS_NOT_EQ"/> | ||
33 | </genEnums> | 37 | </genEnums> |
34 | <genEnums typeSafeEnumCompatible="false" ecoreEnum="problem.ecore#//ReferenceKind"> | 38 | <genEnums typeSafeEnumCompatible="false" ecoreEnum="problem.ecore#//ReferenceKind"> |
35 | <genEnumLiterals ecoreEnumLiteral="problem.ecore#//ReferenceKind/REFERENCE"/> | 39 | <genEnumLiterals ecoreEnumLiteral="problem.ecore#//ReferenceKind/REFERENCE"/> |
@@ -226,13 +230,8 @@ | |||
226 | <genFeatures createChild="false" ecoreFeature="ecore:EAttribute problem.ecore#//AttributeDeclaration/attributeType"/> | 230 | <genFeatures createChild="false" ecoreFeature="ecore:EAttribute problem.ecore#//AttributeDeclaration/attributeType"/> |
227 | </genClasses> | 231 | </genClasses> |
228 | <genClasses ecoreClass="problem.ecore#//FlagDeclaration"/> | 232 | <genClasses ecoreClass="problem.ecore#//FlagDeclaration"/> |
229 | <genClasses ecoreClass="problem.ecore#//AssertionValue"/> | 233 | <genClasses ecoreClass="problem.ecore#//LogicConstant"> |
230 | <genClasses ecoreClass="problem.ecore#//LogicAssertionValue"> | 234 | <genFeatures createChild="false" ecoreFeature="ecore:EAttribute problem.ecore#//LogicConstant/logicValue"/> |
231 | <genFeatures createChild="false" ecoreFeature="ecore:EAttribute problem.ecore#//LogicAssertionValue/logicValue"/> | ||
232 | </genClasses> | ||
233 | <genClasses ecoreClass="problem.ecore#//ExprAssertionValue"> | ||
234 | <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference problem.ecore#//ExprAssertionValue/body"/> | ||
235 | <genFeatures createChild="false" ecoreFeature="ecore:EAttribute problem.ecore#//ExprAssertionValue/range"/> | ||
236 | </genClasses> | 235 | </genClasses> |
237 | </genPackages> | 236 | </genPackages> |
238 | </genmodel:GenModel> | 237 | </genmodel:GenModel> |
diff --git a/subprojects/language-semantics/src/main/java/tools/refinery/language/semantics/model/ModelInitializer.java b/subprojects/language-semantics/src/main/java/tools/refinery/language/semantics/model/ModelInitializer.java index 557e9752..13bb20d7 100644 --- a/subprojects/language-semantics/src/main/java/tools/refinery/language/semantics/model/ModelInitializer.java +++ b/subprojects/language-semantics/src/main/java/tools/refinery/language/semantics/model/ModelInitializer.java | |||
@@ -84,8 +84,8 @@ public class ModelInitializer { | |||
84 | return Tuple.of(nodes); | 84 | return Tuple.of(nodes); |
85 | } | 85 | } |
86 | 86 | ||
87 | private static TruthValue getTruthValue(AssertionValue value) { | 87 | private static TruthValue getTruthValue(Expr expr) { |
88 | if (!(value instanceof LogicAssertionValue logicAssertionValue)) { | 88 | if (!(expr instanceof LogicConstant logicAssertionValue)) { |
89 | return TruthValue.ERROR; | 89 | return TruthValue.ERROR; |
90 | } | 90 | } |
91 | return switch (logicAssertionValue.getLogicValue()) { | 91 | return switch (logicAssertionValue.getLogicValue()) { |
diff --git a/subprojects/language-web/src/test/java/tools/refinery/language/web/xtext/servlet/TransactionExecutorTest.java b/subprojects/language-web/src/test/java/tools/refinery/language/web/xtext/servlet/TransactionExecutorTest.java index 83030b2b..17f1ff5c 100644 --- a/subprojects/language-web/src/test/java/tools/refinery/language/web/xtext/servlet/TransactionExecutorTest.java +++ b/subprojects/language-web/src/test/java/tools/refinery/language/web/xtext/servlet/TransactionExecutorTest.java | |||
@@ -86,7 +86,7 @@ class TransactionExecutorTest { | |||
86 | var stateId = updateFullText(); | 86 | var stateId = updateFullText(); |
87 | var responseHandler = sendRequestAndWaitForAllResponses( | 87 | var responseHandler = sendRequestAndWaitForAllResponses( |
88 | new XtextWebRequest("bar", Map.of("resource", RESOURCE_NAME, "serviceType", "update", "requiredStateId", | 88 | new XtextWebRequest("bar", Map.of("resource", RESOURCE_NAME, "serviceType", "update", "requiredStateId", |
89 | stateId, "deltaText", "individual q.\nnode(q).\n", "deltaOffset", "0", "deltaReplaceLength", | 89 | stateId, "deltaText", "indiv q.\nnode(q).\n", "deltaOffset", "0", "deltaReplaceLength", |
90 | "0"))); | 90 | "0"))); |
91 | 91 | ||
92 | var captor = newCaptor(); | 92 | var captor = newCaptor(); |
diff --git a/subprojects/language/src/main/java/tools/refinery/language/Problem.xtext b/subprojects/language/src/main/java/tools/refinery/language/Problem.xtext index 8b13a693..95a64737 100644 --- a/subprojects/language/src/main/java/tools/refinery/language/Problem.xtext +++ b/subprojects/language/src/main/java/tools/refinery/language/Problem.xtext | |||
@@ -33,7 +33,8 @@ enum ReferenceKind: | |||
33 | REFERENCE="refers" | CONTAINMENT="contains" | CONTAINER="container"; | 33 | REFERENCE="refers" | CONTAINMENT="contains" | CONTAINER="container"; |
34 | 34 | ||
35 | ReferenceDeclaration: | 35 | ReferenceDeclaration: |
36 | kind=ReferenceKind referenceType=[Relation|QualifiedName] | 36 | (referenceType=[Relation|NonContainmentQualifiedName] | |
37 | kind=ReferenceKind referenceType=[Relation|QualifiedName]) | ||
37 | ("[" multiplicity=Multiplicity "]")? | 38 | ("[" multiplicity=Multiplicity "]")? |
38 | name=Identifier | 39 | name=Identifier |
39 | ("opposite" opposite=[ReferenceDeclaration|QualifiedName])?; | 40 | ("opposite" opposite=[ReferenceDeclaration|QualifiedName])?; |
@@ -64,7 +65,7 @@ Conjunction: | |||
64 | literals+=Expr ("," literals+=Expr)*; | 65 | literals+=Expr ("," literals+=Expr)*; |
65 | 66 | ||
66 | FunctionDefinition: | 67 | FunctionDefinition: |
67 | functionType=PrimitiveType name=Identifier | 68 | "fn" functionType=PrimitiveType name=Identifier |
68 | "(" (parameters+=Parameter ("," parameters+=Parameter)*)? ")" | 69 | "(" (parameters+=Parameter ("," parameters+=Parameter)*)? ")" |
69 | ("=" cases+=Case (";" cases+=Case)*)? | 70 | ("=" cases+=Case (";" cases+=Case)*)? |
70 | "."; | 71 | "."; |
@@ -106,7 +107,8 @@ Expr: | |||
106 | ComparisonExpr; | 107 | ComparisonExpr; |
107 | 108 | ||
108 | enum ComparisonOp: | 109 | enum ComparisonOp: |
109 | LESS="<" | LESS_EQ="<=" | GREATER=">" | GREATER_EQ=">=" | EQ="==" | NOT_EQ="!=" | IN="in"; | 110 | LESS="<" | LESS_EQ="<=" | GREATER=">" | GREATER_EQ=">=" | EQ="==" | NOT_EQ="!=" | |
111 | IN="in" | SUBSUMES=":>" | SUBSUMED_BY="<:" | ABS_EQ="===" | ABS_NOT_EQ="!=="; | ||
110 | 112 | ||
111 | ComparisonExpr returns Expr: | 113 | ComparisonExpr returns Expr: |
112 | LatticeExpr ({ComparisonExpr.left=current} | 114 | LatticeExpr ({ComparisonExpr.left=current} |
@@ -163,7 +165,7 @@ NegationExpr: | |||
163 | "!" body=UnaryExpr; | 165 | "!" body=UnaryExpr; |
164 | 166 | ||
165 | CountExpr: | 167 | CountExpr: |
166 | "#" body=UnaryExpr; | 168 | "count" body=UnaryExpr; |
167 | 169 | ||
168 | enum AggregationOp: | 170 | enum AggregationOp: |
169 | SUM="sum" | PROD="prod" | MIN="min" | MAX="max"; | 171 | SUM="sum" | PROD="prod" | MIN="min" | MAX="max"; |
@@ -180,7 +182,7 @@ VariableOrNodeExpr: | |||
180 | variableOrNode=[VariableOrNode|QualifiedName]; | 182 | variableOrNode=[VariableOrNode|QualifiedName]; |
181 | 183 | ||
182 | Constant: | 184 | Constant: |
183 | RealConstant | IntConstant | InfConstant | StringConstant; | 185 | RealConstant | IntConstant | InfConstant | StringConstant | LogicConstant; |
184 | 186 | ||
185 | IntConstant: | 187 | IntConstant: |
186 | intValue=INT; | 188 | intValue=INT; |
@@ -194,12 +196,18 @@ InfConstant: | |||
194 | StringConstant: | 196 | StringConstant: |
195 | stringValue=STRING; | 197 | stringValue=STRING; |
196 | 198 | ||
199 | enum LogicValue: | ||
200 | TRUE="true" | FALSE="false" | UNKNOWN="unknown" | ERROR="error"; | ||
201 | |||
202 | LogicConstant: | ||
203 | logicValue=LogicValue; | ||
204 | |||
197 | Assertion: | 205 | Assertion: |
198 | default?="default"? | 206 | default?="default"? |
199 | (relation=[Relation|QualifiedName] | 207 | (relation=[Relation|QualifiedName] |
200 | "(" (arguments+=AssertionArgument ("," arguments+=AssertionArgument)*)? ")" | 208 | "(" (arguments+=AssertionArgument ("," arguments+=AssertionArgument)*)? ")" |
201 | value=AssertionValue | | 209 | ":" value=Expr | |
202 | value=ShortLogicAssertionValue | 210 | value=ShortLogicConstant |
203 | relation=[Relation|QualifiedName] | 211 | relation=[Relation|QualifiedName] |
204 | "(" (arguments+=AssertionArgument ("," arguments+=AssertionArgument)*)? ")") | 212 | "(" (arguments+=AssertionArgument ("," arguments+=AssertionArgument)*)? ")") |
205 | "."; | 213 | "."; |
@@ -213,23 +221,11 @@ NodeAssertionArgument: | |||
213 | WildcardAssertionArgument: | 221 | WildcardAssertionArgument: |
214 | {WildcardAssertionArgument} "*"; | 222 | {WildcardAssertionArgument} "*"; |
215 | 223 | ||
216 | AssertionValue: | ||
217 | LogicAssertionValue | ExprAssertionValue; | ||
218 | |||
219 | enum LogicValue: | ||
220 | TRUE="true" | FALSE="false" | UNKNOWN="unknown" | ERROR="error"; | ||
221 | |||
222 | LogicAssertionValue: | ||
223 | ":" logicValue=LogicValue; | ||
224 | |||
225 | ExprAssertionValue: | ||
226 | (range?="in" | "=") body=Expr; | ||
227 | |||
228 | enum ShortLogicValue returns LogicValue: | 224 | enum ShortLogicValue returns LogicValue: |
229 | FALSE="!" | UNKNOWN="?"; | 225 | FALSE="!" | UNKNOWN="?"; |
230 | 226 | ||
231 | ShortLogicAssertionValue returns LogicAssertionValue: | 227 | ShortLogicConstant returns LogicConstant: |
232 | {LogicAssertionValue} logicValue=ShortLogicValue?; | 228 | {LogicConstant} logicValue=ShortLogicValue?; |
233 | 229 | ||
234 | ScopeDeclaration: | 230 | ScopeDeclaration: |
235 | "scope" typeScopes+=TypeScope ("," typeScopes+=TypeScope)* "."; | 231 | "scope" typeScopes+=TypeScope ("," typeScopes+=TypeScope)* "."; |
@@ -255,7 +251,7 @@ ExactMultiplicity: | |||
255 | exactValue=INT; | 251 | exactValue=INT; |
256 | 252 | ||
257 | IndividualDeclaration: | 253 | IndividualDeclaration: |
258 | "individual" nodes+=EnumLiteral ("," nodes+=EnumLiteral)* "."; | 254 | "indiv" nodes+=EnumLiteral ("," nodes+=EnumLiteral)* "."; |
259 | 255 | ||
260 | UpperBound returns ecore::EInt: | 256 | UpperBound returns ecore::EInt: |
261 | INT | "*"; | 257 | INT | "*"; |
@@ -263,8 +259,14 @@ UpperBound returns ecore::EInt: | |||
263 | QualifiedName hidden(): | 259 | QualifiedName hidden(): |
264 | Identifier ("::" Identifier)*; | 260 | Identifier ("::" Identifier)*; |
265 | 261 | ||
262 | NonContainmentQualifiedName hidden(): | ||
263 | NonContainmentIdentifier ("::" Identifier)*; | ||
264 | |||
266 | Identifier: | 265 | Identifier: |
267 | ID | "contains" | "contained" | "sum" | "prod" | "min" | "max"; | 266 | NonContainmentIdentifier | "contains"; |
267 | |||
268 | NonContainmentIdentifier: | ||
269 | ID | "contained" | "sum" | "prod" | "min" | "max"; | ||
268 | 270 | ||
269 | Real returns ecore::EDouble: | 271 | Real returns ecore::EDouble: |
270 | EXPONENTIAL | INT "." (INT | EXPONENTIAL); | 272 | EXPONENTIAL | INT "." (INT | EXPONENTIAL); |
diff --git a/subprojects/language/src/main/java/tools/refinery/language/formatting2/ProblemFormatter.java b/subprojects/language/src/main/java/tools/refinery/language/formatting2/ProblemFormatter.java index 46870edb..797535ea 100644 --- a/subprojects/language/src/main/java/tools/refinery/language/formatting2/ProblemFormatter.java +++ b/subprojects/language/src/main/java/tools/refinery/language/formatting2/ProblemFormatter.java | |||
@@ -3,7 +3,6 @@ | |||
3 | */ | 3 | */ |
4 | package tools.refinery.language.formatting2; | 4 | package tools.refinery.language.formatting2; |
5 | 5 | ||
6 | import com.google.inject.Inject; | ||
7 | import org.eclipse.emf.ecore.EObject; | 6 | import org.eclipse.emf.ecore.EObject; |
8 | import org.eclipse.xtext.formatting2.AbstractJavaFormatter; | 7 | import org.eclipse.xtext.formatting2.AbstractJavaFormatter; |
9 | import org.eclipse.xtext.formatting2.IFormattableDocument; | 8 | import org.eclipse.xtext.formatting2.IFormattableDocument; |
@@ -11,15 +10,10 @@ import org.eclipse.xtext.formatting2.IHiddenRegionFormatter; | |||
11 | import org.eclipse.xtext.formatting2.regionaccess.ISemanticRegionsFinder; | 10 | import org.eclipse.xtext.formatting2.regionaccess.ISemanticRegionsFinder; |
12 | import org.eclipse.xtext.formatting2.regionaccess.ISequentialRegion; | 11 | import org.eclipse.xtext.formatting2.regionaccess.ISequentialRegion; |
13 | import org.eclipse.xtext.xbase.lib.Procedures.Procedure1; | 12 | import org.eclipse.xtext.xbase.lib.Procedures.Procedure1; |
14 | |||
15 | import tools.refinery.language.model.problem.*; | 13 | import tools.refinery.language.model.problem.*; |
16 | import tools.refinery.language.services.ProblemGrammarAccess; | ||
17 | 14 | ||
18 | @SuppressWarnings("UnstableApiUsage") | 15 | @SuppressWarnings("UnstableApiUsage") |
19 | public class ProblemFormatter extends AbstractJavaFormatter { | 16 | public class ProblemFormatter extends AbstractJavaFormatter { |
20 | @Inject | ||
21 | private ProblemGrammarAccess problemGrammarAccess; | ||
22 | |||
23 | protected void format(Problem problem, IFormattableDocument doc) { | 17 | protected void format(Problem problem, IFormattableDocument doc) { |
24 | doc.prepend(problem, this::noSpace); | 18 | doc.prepend(problem, this::noSpace); |
25 | var region = regionFor(problem); | 19 | var region = regionFor(problem); |
@@ -37,31 +31,26 @@ public class ProblemFormatter extends AbstractJavaFormatter { | |||
37 | doc.append(region.feature(ProblemPackage.Literals.ASSERTION__DEFAULT), this::oneSpace); | 31 | doc.append(region.feature(ProblemPackage.Literals.ASSERTION__DEFAULT), this::oneSpace); |
38 | doc.append(region.feature(ProblemPackage.Literals.ASSERTION__RELATION), this::noSpace); | 32 | doc.append(region.feature(ProblemPackage.Literals.ASSERTION__RELATION), this::noSpace); |
39 | formatParenthesizedList(region, doc); | 33 | formatParenthesizedList(region, doc); |
34 | for (var argument : assertion.getArguments()) { | ||
35 | doc.format(argument); | ||
36 | } | ||
37 | var colon = region.keyword(":"); | ||
38 | boolean abbreviated = colon == null; | ||
39 | if (!abbreviated) { | ||
40 | doc.prepend(colon, this::noSpace); | ||
41 | doc.append(colon, this::oneSpace); | ||
42 | } | ||
40 | var value = assertion.getValue(); | 43 | var value = assertion.getValue(); |
41 | if (value != null) { | 44 | if (value != null) { |
42 | doc.append(value, this::noSpace); | 45 | var valueRegion = regionForEObject(value); |
46 | // Avoid clash between noSpace after ASSERTION_DEFAULT and noSpace after the 0-length region | ||
47 | // for a true LogicAssertionValue if the abbreviated form of assertion (no : operator) is used. | ||
48 | if (abbreviated && valueRegion != null && valueRegion.getLength() > 0) { | ||
49 | doc.append(value, this::noSpace); | ||
50 | } | ||
43 | doc.format(value); | 51 | doc.format(value); |
44 | } | 52 | } |
45 | doc.prepend(region.keyword("."), this::noSpace); | 53 | doc.prepend(region.keyword("."), this::noSpace); |
46 | for (var argument : assertion.getArguments()) { | ||
47 | doc.format(argument); | ||
48 | } | ||
49 | } | ||
50 | |||
51 | protected void format(LogicAssertionValue assertionValue, IFormattableDocument doc) { | ||
52 | var region = regionFor(assertionValue); | ||
53 | doc.prepend(region.keyword(":"), this::noSpace); | ||
54 | doc.append(region.keyword(":"), this::oneSpace); | ||
55 | } | ||
56 | |||
57 | protected void format(ExprAssertionValue assertionValue, IFormattableDocument doc) { | ||
58 | var region = regionFor(assertionValue); | ||
59 | doc.surround(region.keyword("="), this::oneSpace); | ||
60 | doc.surround(region.keyword("in"), this::oneSpace); | ||
61 | var body = assertionValue.getBody(); | ||
62 | if (body != null) { | ||
63 | doc.format(body); | ||
64 | } | ||
65 | } | 54 | } |
66 | 55 | ||
67 | protected void format(ClassDeclaration classDeclaration, IFormattableDocument doc) { | 56 | protected void format(ClassDeclaration classDeclaration, IFormattableDocument doc) { |
@@ -128,7 +117,7 @@ public class ProblemFormatter extends AbstractJavaFormatter { | |||
128 | protected void format(IndividualDeclaration individualDeclaration, IFormattableDocument doc) { | 117 | protected void format(IndividualDeclaration individualDeclaration, IFormattableDocument doc) { |
129 | surroundNewLines(doc, individualDeclaration, this::singleNewLine); | 118 | surroundNewLines(doc, individualDeclaration, this::singleNewLine); |
130 | var region = regionFor(individualDeclaration); | 119 | var region = regionFor(individualDeclaration); |
131 | doc.append(region.keyword("individual"), this::oneSpace); | 120 | doc.append(region.keyword("indiv"), this::oneSpace); |
132 | formatList(region, ",", doc); | 121 | formatList(region, ",", doc); |
133 | doc.prepend(region.keyword("."), this::noSpace); | 122 | doc.prepend(region.keyword("."), this::noSpace); |
134 | } | 123 | } |
diff --git a/subprojects/language/src/main/java/tools/refinery/language/serializer/PreferShortAssertionsProblemSemanticSequencer.java b/subprojects/language/src/main/java/tools/refinery/language/serializer/PreferShortAssertionsProblemSemanticSequencer.java index c51a5e28..27ce1521 100644 --- a/subprojects/language/src/main/java/tools/refinery/language/serializer/PreferShortAssertionsProblemSemanticSequencer.java +++ b/subprojects/language/src/main/java/tools/refinery/language/serializer/PreferShortAssertionsProblemSemanticSequencer.java | |||
@@ -5,7 +5,7 @@ import org.eclipse.xtext.serializer.ISerializationContext; | |||
5 | import org.eclipse.xtext.serializer.sequencer.ITransientValueService.ListTransient; | 5 | import org.eclipse.xtext.serializer.sequencer.ITransientValueService.ListTransient; |
6 | import org.eclipse.xtext.serializer.sequencer.ITransientValueService.ValueTransient; | 6 | import org.eclipse.xtext.serializer.sequencer.ITransientValueService.ValueTransient; |
7 | import tools.refinery.language.model.problem.Assertion; | 7 | import tools.refinery.language.model.problem.Assertion; |
8 | import tools.refinery.language.model.problem.LogicAssertionValue; | 8 | import tools.refinery.language.model.problem.LogicConstant; |
9 | import tools.refinery.language.model.problem.LogicValue; | 9 | import tools.refinery.language.model.problem.LogicValue; |
10 | import tools.refinery.language.model.problem.ProblemPackage; | 10 | import tools.refinery.language.model.problem.ProblemPackage; |
11 | import tools.refinery.language.services.ProblemGrammarAccess; | 11 | import tools.refinery.language.services.ProblemGrammarAccess; |
@@ -17,8 +17,8 @@ public class PreferShortAssertionsProblemSemanticSequencer extends ProblemSemant | |||
17 | @Override | 17 | @Override |
18 | protected void sequence_Assertion(ISerializationContext context, Assertion semanticObject) { | 18 | protected void sequence_Assertion(ISerializationContext context, Assertion semanticObject) { |
19 | if (semanticObject.isDefault() || | 19 | if (semanticObject.isDefault() || |
20 | !(semanticObject.getValue() instanceof LogicAssertionValue logicAssertionValue) || | 20 | !(semanticObject.getValue() instanceof LogicConstant logicConstant) || |
21 | logicAssertionValue.getLogicValue() == LogicValue.ERROR) { | 21 | logicConstant.getLogicValue() == LogicValue.ERROR) { |
22 | super.sequence_Assertion(context, semanticObject); | 22 | super.sequence_Assertion(context, semanticObject); |
23 | return; | 23 | return; |
24 | } | 24 | } |
@@ -34,7 +34,7 @@ public class PreferShortAssertionsProblemSemanticSequencer extends ProblemSemant | |||
34 | } | 34 | } |
35 | var feeder = createSequencerFeeder(context, semanticObject); | 35 | var feeder = createSequencerFeeder(context, semanticObject); |
36 | var access = grammarAccess.getAssertionAccess(); | 36 | var access = grammarAccess.getAssertionAccess(); |
37 | feeder.accept(access.getValueShortLogicAssertionValueParserRuleCall_1_1_0_0(), logicAssertionValue); | 37 | feeder.accept(access.getValueShortLogicConstantParserRuleCall_1_1_0_0(), logicConstant); |
38 | feeder.accept(access.getRelationRelationQualifiedNameParserRuleCall_1_1_1_0_1(), semanticObject.getRelation()); | 38 | feeder.accept(access.getRelationRelationQualifiedNameParserRuleCall_1_1_1_0_1(), semanticObject.getRelation()); |
39 | var iterator = semanticObject.getArguments().iterator(); | 39 | var iterator = semanticObject.getArguments().iterator(); |
40 | if (iterator.hasNext()) { | 40 | if (iterator.hasNext()) { |
diff --git a/subprojects/language/src/main/java/tools/refinery/language/utils/SymbolCollector.java b/subprojects/language/src/main/java/tools/refinery/language/utils/SymbolCollector.java index 5412f620..65167ed6 100644 --- a/subprojects/language/src/main/java/tools/refinery/language/utils/SymbolCollector.java +++ b/subprojects/language/src/main/java/tools/refinery/language/utils/SymbolCollector.java | |||
@@ -242,7 +242,7 @@ class SymbolCollector { | |||
242 | } | 242 | } |
243 | assertion.getArguments().add(argument); | 243 | assertion.getArguments().add(argument); |
244 | } | 244 | } |
245 | var value = ProblemFactory.eINSTANCE.createLogicAssertionValue(); | 245 | var value = ProblemFactory.eINSTANCE.createLogicConstant(); |
246 | value.setLogicValue(logicValue); | 246 | value.setLogicValue(logicValue); |
247 | assertion.setValue(value); | 247 | assertion.setValue(value); |
248 | collectAssertion(assertion); | 248 | collectAssertion(assertion); |
diff --git a/subprojects/language/src/test/java/tools/refinery/language/tests/ProblemParsingTest.java b/subprojects/language/src/test/java/tools/refinery/language/tests/ProblemParsingTest.java index e0dee496..58daa365 100644 --- a/subprojects/language/src/test/java/tools/refinery/language/tests/ProblemParsingTest.java +++ b/subprojects/language/src/test/java/tools/refinery/language/tests/ProblemParsingTest.java | |||
@@ -24,30 +24,30 @@ class ProblemParsingTest { | |||
24 | } | 24 | } |
25 | 25 | ||
26 | class Person { | 26 | class Person { |
27 | refers Person[0..*] children opposite parent | 27 | Person[0..*] children opposite parent |
28 | refers Person[0..1] parent opposite children | 28 | Person[0..1] parent opposite children |
29 | int age | 29 | int age |
30 | refers TaxStatus taxStatus | 30 | TaxStatus taxStatus |
31 | } | 31 | } |
32 | 32 | ||
33 | enum TaxStatus { | 33 | enum TaxStatus { |
34 | child, student, adult, retired | 34 | CHILD, STUDENT, ADULT, RETIRED |
35 | } | 35 | } |
36 | 36 | ||
37 | % A child cannot have any dependents. | 37 | % A child cannot have any dependents. |
38 | error invalidTaxStatus(Person p) <-> | 38 | error invalidTaxStatus(Person p) <-> |
39 | taxStatus(p, child), children(p, _q). | 39 | taxStatus(p, CHILD), children(p, _q). |
40 | 40 | ||
41 | individual family. | 41 | indiv family. |
42 | Family(family). | 42 | Family(family). |
43 | members(family, anne): true. | 43 | members(family, anne): true. |
44 | members(family, bob). | 44 | members(family, bob). |
45 | members(family, ciri). | 45 | members(family, ciri). |
46 | children(anne, ciri). | 46 | children(anne, ciri). |
47 | ?children(bob, ciri). | 47 | ?children(bob, ciri). |
48 | taxStatus(anne, adult). | 48 | taxStatus(anne, ADULT). |
49 | age(bob) in 21..35. | 49 | age(bob): 21..35. |
50 | age(ciri) = 10. | 50 | age(ciri): 10. |
51 | """); | 51 | """); |
52 | assertThat(problem.errors(), empty()); | 52 | assertThat(problem.errors(), empty()); |
53 | } | 53 | } |
diff --git a/subprojects/language/src/test/java/tools/refinery/language/tests/formatting2/ProblemFormatterTest.java b/subprojects/language/src/test/java/tools/refinery/language/tests/formatting2/ProblemFormatterTest.java index a6e38130..6e0802ca 100644 --- a/subprojects/language/src/test/java/tools/refinery/language/tests/formatting2/ProblemFormatterTest.java +++ b/subprojects/language/src/test/java/tools/refinery/language/tests/formatting2/ProblemFormatterTest.java | |||
@@ -179,7 +179,7 @@ class ProblemFormatterTest { | |||
179 | 179 | ||
180 | @Test | 180 | @Test |
181 | void individualDeclarationTest() { | 181 | void individualDeclarationTest() { |
182 | testFormatter(" individual a , b . ", "individual a, b.\n"); | 182 | testFormatter(" indiv a , b . ", "indiv a, b.\n"); |
183 | } | 183 | } |
184 | 184 | ||
185 | @Test | 185 | @Test |
diff --git a/subprojects/language/src/test/java/tools/refinery/language/tests/parser/antlr/TransitiveClosureParserTest.java b/subprojects/language/src/test/java/tools/refinery/language/tests/parser/antlr/TransitiveClosureParserTest.java index 6e702720..65ceb45f 100644 --- a/subprojects/language/src/test/java/tools/refinery/language/tests/parser/antlr/TransitiveClosureParserTest.java +++ b/subprojects/language/src/test/java/tools/refinery/language/tests/parser/antlr/TransitiveClosureParserTest.java | |||
@@ -24,8 +24,8 @@ class TransitiveClosureParserTest { | |||
24 | @Test | 24 | @Test |
25 | void binaryAddOperatorTest() { | 25 | void binaryAddOperatorTest() { |
26 | var problem = parseHelper.parse(""" | 26 | var problem = parseHelper.parse(""" |
27 | int a(). | 27 | fn int a(). |
28 | int b(). | 28 | fn int b(). |
29 | pred foo() <-> a() + (b()) > 10. | 29 | pred foo() <-> a() + (b()) > 10. |
30 | """); | 30 | """); |
31 | assertThat(problem.errors(), empty()); | 31 | assertThat(problem.errors(), empty()); |
diff --git a/subprojects/language/src/test/java/tools/refinery/language/tests/scoping/NodeScopingTest.java b/subprojects/language/src/test/java/tools/refinery/language/tests/scoping/NodeScopingTest.java index 2fd647e5..fa462691 100644 --- a/subprojects/language/src/test/java/tools/refinery/language/tests/scoping/NodeScopingTest.java +++ b/subprojects/language/src/test/java/tools/refinery/language/tests/scoping/NodeScopingTest.java | |||
@@ -67,7 +67,7 @@ class NodeScopingTest { | |||
67 | @MethodSource("individualNodeReferenceSource") | 67 | @MethodSource("individualNodeReferenceSource") |
68 | void individualNodeInAssertionTest(String qualifiedNamePrefix, boolean namedProblem) { | 68 | void individualNodeInAssertionTest(String qualifiedNamePrefix, boolean namedProblem) { |
69 | var problem = parse(""" | 69 | var problem = parse(""" |
70 | individual a, b. | 70 | indiv a, b. |
71 | pred predicate(node x, node y) <-> node(x). | 71 | pred predicate(node x, node y) <-> node(x). |
72 | predicate({PARAM}a, {PARAM}a). | 72 | predicate({PARAM}a, {PARAM}a). |
73 | ?predicate({PARAM}a, {PARAM}b). | 73 | ?predicate({PARAM}a, {PARAM}b). |
@@ -84,7 +84,7 @@ class NodeScopingTest { | |||
84 | @MethodSource("individualNodeReferenceSource") | 84 | @MethodSource("individualNodeReferenceSource") |
85 | void individualNodeInPredicateTest(String qualifiedNamePrefix, boolean namedProblem) { | 85 | void individualNodeInPredicateTest(String qualifiedNamePrefix, boolean namedProblem) { |
86 | var problem = parse(""" | 86 | var problem = parse(""" |
87 | individual b. | 87 | indiv b. |
88 | pred predicate(node a) <-> node({PARAM}b). | 88 | pred predicate(node a) <-> node({PARAM}b). |
89 | """); | 89 | """); |
90 | assertThat(problem.errors(), empty()); | 90 | assertThat(problem.errors(), empty()); |
diff --git a/subprojects/language/src/test/java/tools/refinery/language/tests/serializer/ProblemSerializerTest.java b/subprojects/language/src/test/java/tools/refinery/language/tests/serializer/ProblemSerializerTest.java index 5024fb45..4a18704a 100644 --- a/subprojects/language/src/test/java/tools/refinery/language/tests/serializer/ProblemSerializerTest.java +++ b/subprojects/language/src/test/java/tools/refinery/language/tests/serializer/ProblemSerializerTest.java | |||
@@ -59,7 +59,7 @@ class ProblemSerializerTest { | |||
59 | assertSerializedResult(""" | 59 | assertSerializedResult(""" |
60 | pred foo(node p). | 60 | pred foo(node p). |
61 | 61 | ||
62 | individual a. | 62 | indiv a. |
63 | """ + serializedAssertion + "\n"); | 63 | """ + serializedAssertion + "\n"); |
64 | } | 64 | } |
65 | 65 | ||
@@ -82,7 +82,7 @@ class ProblemSerializerTest { | |||
82 | assertSerializedResult(""" | 82 | assertSerializedResult(""" |
83 | pred foo(node p). | 83 | pred foo(node p). |
84 | 84 | ||
85 | individual a. | 85 | indiv a. |
86 | default foo(a):\040""" + valueAsString + ".\n"); | 86 | default foo(a):\040""" + valueAsString + ".\n"); |
87 | } | 87 | } |
88 | 88 | ||
@@ -149,7 +149,7 @@ class ProblemSerializerTest { | |||
149 | var argument = ProblemFactory.eINSTANCE.createNodeAssertionArgument(); | 149 | var argument = ProblemFactory.eINSTANCE.createNodeAssertionArgument(); |
150 | argument.setNode(node); | 150 | argument.setNode(node); |
151 | assertion.getArguments().add(argument); | 151 | assertion.getArguments().add(argument); |
152 | var value = ProblemFactory.eINSTANCE.createLogicAssertionValue(); | 152 | var value = ProblemFactory.eINSTANCE.createLogicConstant(); |
153 | value.setLogicValue(logicValue); | 153 | value.setLogicValue(logicValue); |
154 | assertion.setValue(value); | 154 | assertion.setValue(value); |
155 | assertion.setDefault(isDefault); | 155 | assertion.setDefault(isDefault); |
diff --git a/subprojects/language/src/test/java/tools/refinery/language/tests/utils/SymbolCollectorTest.java b/subprojects/language/src/test/java/tools/refinery/language/tests/utils/SymbolCollectorTest.java index 66b7f1ab..af6de37f 100644 --- a/subprojects/language/src/test/java/tools/refinery/language/tests/utils/SymbolCollectorTest.java +++ b/subprojects/language/src/test/java/tools/refinery/language/tests/utils/SymbolCollectorTest.java | |||
@@ -45,7 +45,7 @@ class SymbolCollectorTest { | |||
45 | @Test | 45 | @Test |
46 | void individualNodeTest() { | 46 | void individualNodeTest() { |
47 | var problem = parseHelper.parse(""" | 47 | var problem = parseHelper.parse(""" |
48 | individual a. | 48 | indiv a. |
49 | """); | 49 | """); |
50 | var collectedSymbols = desugarer.collectSymbols(problem.get()); | 50 | var collectedSymbols = desugarer.collectSymbols(problem.get()); |
51 | var node = problem.individualNode("a"); | 51 | var node = problem.individualNode("a"); |