diff options
6 files changed, 22 insertions, 8 deletions
diff --git a/subprojects/frontend/src/index.tsx b/subprojects/frontend/src/index.tsx index 78e469cd..152c0bf7 100644 --- a/subprojects/frontend/src/index.tsx +++ b/subprojects/frontend/src/index.tsx | |||
@@ -34,7 +34,7 @@ pred invalidTaxStatus(Person p) <-> | |||
34 | parent(p, q), | 34 | parent(p, q), |
35 | !taxStatus(q, retired). | 35 | !taxStatus(q, retired). |
36 | 36 | ||
37 | rule createChild(p, newPerson): | 37 | rule createChild(may Person p, must Person newPerson): |
38 | may children(p, newPerson), | 38 | may children(p, newPerson), |
39 | may !equals(newPerson, newPerson) | 39 | may !equals(newPerson, newPerson) |
40 | ==> new q <: newPerson, | 40 | ==> new q <: newPerson, |
diff --git a/subprojects/frontend/src/language/problem.grammar b/subprojects/frontend/src/language/problem.grammar index f3794e27..ac0b0ea3 100644 --- a/subprojects/frontend/src/language/problem.grammar +++ b/subprojects/frontend/src/language/problem.grammar | |||
@@ -51,7 +51,7 @@ ReferenceDeclaration { | |||
51 | ";"? | 51 | ";"? |
52 | } | 52 | } |
53 | 53 | ||
54 | Parameter { RelationName? VariableName } | 54 | Parameter { Modality? RelationName? VariableName } |
55 | 55 | ||
56 | Conjunction { ("," | Literal)+ } | 56 | Conjunction { ("," | Literal)+ } |
57 | 57 | ||
diff --git a/subprojects/language-model/problem.aird b/subprojects/language-model/problem.aird index 07bc0793..9bd76766 100644 --- a/subprojects/language-model/problem.aird +++ b/subprojects/language-model/problem.aird | |||
@@ -7,7 +7,7 @@ | |||
7 | <semanticResources>build/resources/main/model/problem.genmodel</semanticResources> | 7 | <semanticResources>build/resources/main/model/problem.genmodel</semanticResources> |
8 | <ownedViews xmi:type="viewpoint:DView" uid="_CsAAYKA4EeuqkpDnuik1sg"> | 8 | <ownedViews xmi:type="viewpoint:DView" uid="_CsAAYKA4EeuqkpDnuik1sg"> |
9 | <viewpoint xmi:type="description:Viewpoint" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']"/> | 9 | <viewpoint xmi:type="description:Viewpoint" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']"/> |
10 | <ownedRepresentationDescriptors xmi:type="viewpoint:DRepresentationDescriptor" uid="_CsYa4KA4EeuqkpDnuik1sg" name="problem" repPath="#_CsUwgKA4EeuqkpDnuik1sg" changeId="be03322f-9027-4fa2-be8d-12768ad02214"> | 10 | <ownedRepresentationDescriptors xmi:type="viewpoint:DRepresentationDescriptor" uid="_CsYa4KA4EeuqkpDnuik1sg" name="problem" repPath="#_CsUwgKA4EeuqkpDnuik1sg" changeId="e743d94a-193b-4553-83d6-610f55227616"> |
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> |
@@ -89,6 +89,10 @@ | |||
89 | <children xmi:type="notation:Node" xmi:id="_QKLK0KA6EeuqkpDnuik1sg" type="2003" element="_QKD2EKA6EeuqkpDnuik1sg"> | 89 | <children xmi:type="notation:Node" xmi:id="_QKLK0KA6EeuqkpDnuik1sg" type="2003" element="_QKD2EKA6EeuqkpDnuik1sg"> |
90 | <children xmi:type="notation:Node" xmi:id="_QKLK06A6EeuqkpDnuik1sg" type="5007"/> | 90 | <children xmi:type="notation:Node" xmi:id="_QKLK06A6EeuqkpDnuik1sg" type="5007"/> |
91 | <children xmi:type="notation:Node" xmi:id="_QKLK1KA6EeuqkpDnuik1sg" type="7004"> | 91 | <children xmi:type="notation:Node" xmi:id="_QKLK1KA6EeuqkpDnuik1sg" type="7004"> |
92 | <children xmi:type="notation:Node" xmi:id="_ARsFYBjHEe2_erjsEmF9GQ" type="3010" element="_ARaYkBjHEe2_erjsEmF9GQ"> | ||
93 | <styles xmi:type="notation:FontStyle" xmi:id="_ARsFYRjHEe2_erjsEmF9GQ" fontColor="2697711" fontName="Noto Sans" fontHeight="8"/> | ||
94 | <layoutConstraint xmi:type="notation:Location" xmi:id="_ARsFYhjHEe2_erjsEmF9GQ"/> | ||
95 | </children> | ||
92 | <styles xmi:type="notation:SortingStyle" xmi:id="_QKLK1aA6EeuqkpDnuik1sg"/> | 96 | <styles xmi:type="notation:SortingStyle" xmi:id="_QKLK1aA6EeuqkpDnuik1sg"/> |
93 | <styles xmi:type="notation:FilteringStyle" xmi:id="_QKLK1qA6EeuqkpDnuik1sg"/> | 97 | <styles xmi:type="notation:FilteringStyle" xmi:id="_QKLK1qA6EeuqkpDnuik1sg"/> |
94 | </children> | 98 | </children> |
@@ -2074,10 +2078,18 @@ | |||
2074 | <arrangeConstraints>KEEP_LOCATION</arrangeConstraints> | 2078 | <arrangeConstraints>KEEP_LOCATION</arrangeConstraints> |
2075 | <arrangeConstraints>KEEP_SIZE</arrangeConstraints> | 2079 | <arrangeConstraints>KEEP_SIZE</arrangeConstraints> |
2076 | <arrangeConstraints>KEEP_RATIO</arrangeConstraints> | 2080 | <arrangeConstraints>KEEP_RATIO</arrangeConstraints> |
2077 | <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_QKD2EaA6EeuqkpDnuik1sg" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216"> | 2081 | <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_Cr-9nBjHEe2_erjsEmF9GQ" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216"> |
2078 | <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"/> | 2082 | <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"/> |
2079 | </ownedStyle> | 2083 | </ownedStyle> |
2080 | <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']"/> | 2084 | <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']"/> |
2085 | <ownedElements xmi:type="diagram:DNodeListElement" uid="_ARaYkBjHEe2_erjsEmF9GQ" name="modality : Modality = DEFAULT" tooltipText=""> | ||
2086 | <target xmi:type="ecore:EAttribute" href="src/main/resources/model/problem.ecore#//Parameter/modality"/> | ||
2087 | <semanticElements xmi:type="ecore:EAttribute" href="src/main/resources/model/problem.ecore#//Parameter/modality"/> | ||
2088 | <ownedStyle xmi:type="diagram:BundledImage" uid="_CsAyxRjHEe2_erjsEmF9GQ" labelAlignment="LEFT"> | ||
2089 | <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"/> | ||
2090 | </ownedStyle> | ||
2091 | <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']"/> | ||
2092 | </ownedElements> | ||
2081 | </ownedDiagramElements> | 2093 | </ownedDiagramElements> |
2082 | <ownedDiagramElements xmi:type="diagram:DEdge" uid="_Uy4bWaA6EeuqkpDnuik1sg" name="[0..*] parameters" sourceNode="_A8hIkCrZEeyyC-O0_LlY9w" targetNode="_QKD2EKA6EeuqkpDnuik1sg"> | 2094 | <ownedDiagramElements xmi:type="diagram:DEdge" uid="_Uy4bWaA6EeuqkpDnuik1sg" name="[0..*] parameters" sourceNode="_A8hIkCrZEeyyC-O0_LlY9w" targetNode="_QKD2EKA6EeuqkpDnuik1sg"> |
2083 | <target xmi:type="ecore:EReference" href="src/main/resources/model/problem.ecore#//ParametricDefinition/parameters"/> | 2095 | <target xmi:type="ecore:EReference" href="src/main/resources/model/problem.ecore#//ParametricDefinition/parameters"/> |
@@ -2121,12 +2133,12 @@ | |||
2121 | <ownedDiagramElements xmi:type="diagram:DEdge" uid="_oni4rKA6EeuqkpDnuik1sg" sourceNode="_QKD2EKA6EeuqkpDnuik1sg" targetNode="_jPpm4KA6EeuqkpDnuik1sg"> | 2133 | <ownedDiagramElements xmi:type="diagram:DEdge" uid="_oni4rKA6EeuqkpDnuik1sg" sourceNode="_QKD2EKA6EeuqkpDnuik1sg" targetNode="_jPpm4KA6EeuqkpDnuik1sg"> |
2122 | <target xmi:type="ecore:EClass" href="src/main/resources/model/problem.ecore#//Parameter"/> | 2134 | <target xmi:type="ecore:EClass" href="src/main/resources/model/problem.ecore#//Parameter"/> |
2123 | <semanticElements xmi:type="ecore:EClass" href="src/main/resources/model/problem.ecore#//Parameter"/> | 2135 | <semanticElements xmi:type="ecore:EClass" href="src/main/resources/model/problem.ecore#//Parameter"/> |
2124 | <ownedStyle xmi:type="diagram:EdgeStyle" uid="_onjfsKA6EeuqkpDnuik1sg" targetArrow="InputClosedArrow" routingStyle="tree"> | 2136 | <ownedStyle xmi:type="diagram:EdgeStyle" uid="_CsIunBjHEe2_erjsEmF9GQ" targetArrow="InputClosedArrow" routingStyle="tree"> |
2125 | <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"/> | 2137 | <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"/> |
2126 | <beginLabelStyle xmi:type="diagram:BeginLabelStyle" uid="_onjfsaA6EeuqkpDnuik1sg" showIcon="false"> | 2138 | <beginLabelStyle xmi:type="diagram:BeginLabelStyle" uid="_CsIunRjHEe2_erjsEmF9GQ" showIcon="false"> |
2127 | <labelFormat>italic</labelFormat> | 2139 | <labelFormat>italic</labelFormat> |
2128 | </beginLabelStyle> | 2140 | </beginLabelStyle> |
2129 | <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_onjfsqA6EeuqkpDnuik1sg" showIcon="false"/> | 2141 | <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_CsIunhjHEe2_erjsEmF9GQ" showIcon="false"/> |
2130 | </ownedStyle> | 2142 | </ownedStyle> |
2131 | <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']"/> | 2143 | <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']"/> |
2132 | </ownedDiagramElements> | 2144 | </ownedDiagramElements> |
diff --git a/subprojects/language-model/src/main/resources/model/problem.ecore b/subprojects/language-model/src/main/resources/model/problem.ecore index 8f1bc355..571d52f3 100644 --- a/subprojects/language-model/src/main/resources/model/problem.ecore +++ b/subprojects/language-model/src/main/resources/model/problem.ecore | |||
@@ -32,6 +32,7 @@ | |||
32 | </eClassifiers> | 32 | </eClassifiers> |
33 | <eClassifiers xsi:type="ecore:EClass" name="Parameter" eSuperTypes="#//Variable"> | 33 | <eClassifiers xsi:type="ecore:EClass" name="Parameter" eSuperTypes="#//Variable"> |
34 | <eStructuralFeatures xsi:type="ecore:EReference" name="parameterType" eType="#//Relation"/> | 34 | <eStructuralFeatures xsi:type="ecore:EReference" name="parameterType" eType="#//Relation"/> |
35 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="modality" eType="#//Modality"/> | ||
35 | </eClassifiers> | 36 | </eClassifiers> |
36 | <eClassifiers xsi:type="ecore:EClass" name="Variable" abstract="true" eSuperTypes="#//VariableOrNode"/> | 37 | <eClassifiers xsi:type="ecore:EClass" name="Variable" abstract="true" eSuperTypes="#//VariableOrNode"/> |
37 | <eClassifiers xsi:type="ecore:EClass" name="Conjunction" eSuperTypes="#//ExistentialQuantifier"> | 38 | <eClassifiers xsi:type="ecore:EClass" name="Conjunction" eSuperTypes="#//ExistentialQuantifier"> |
diff --git a/subprojects/language-model/src/main/resources/model/problem.genmodel b/subprojects/language-model/src/main/resources/model/problem.genmodel index fbaf9d65..1b72ecfd 100644 --- a/subprojects/language-model/src/main/resources/model/problem.genmodel +++ b/subprojects/language-model/src/main/resources/model/problem.genmodel | |||
@@ -54,6 +54,7 @@ | |||
54 | </genClasses> | 54 | </genClasses> |
55 | <genClasses ecoreClass="problem.ecore#//Parameter"> | 55 | <genClasses ecoreClass="problem.ecore#//Parameter"> |
56 | <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference problem.ecore#//Parameter/parameterType"/> | 56 | <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference problem.ecore#//Parameter/parameterType"/> |
57 | <genFeatures createChild="false" ecoreFeature="ecore:EAttribute problem.ecore#//Parameter/modality"/> | ||
57 | </genClasses> | 58 | </genClasses> |
58 | <genClasses ecoreClass="problem.ecore#//Variable"/> | 59 | <genClasses ecoreClass="problem.ecore#//Variable"/> |
59 | <genClasses ecoreClass="problem.ecore#//Conjunction"> | 60 | <genClasses ecoreClass="problem.ecore#//Conjunction"> |
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 74b0d50e..f7b86dca 100644 --- a/subprojects/language/src/main/java/tools/refinery/language/Problem.xtext +++ b/subprojects/language/src/main/java/tools/refinery/language/Problem.xtext | |||
@@ -49,7 +49,7 @@ RuleDefinition: | |||
49 | "."; | 49 | "."; |
50 | 50 | ||
51 | Parameter: | 51 | Parameter: |
52 | parameterType=[Relation|QualifiedName]? name=Identifier; | 52 | (modality=Modality? parameterType=[Relation|QualifiedName])? name=Identifier; |
53 | 53 | ||
54 | Conjunction: | 54 | Conjunction: |
55 | literals+=Literal ("," literals+=Literal)*; | 55 | literals+=Literal ("," literals+=Literal)*; |