diff --git a/org.eventb.texteditor.feature/camille.target b/org.eventb.texteditor.feature/camille.target index 7665b55805a6363f23db9aa2ba04b11186bc2317..11a0f799819febf74a5ac326363eb35a019060a3 100644 --- a/org.eventb.texteditor.feature/camille.target +++ b/org.eventb.texteditor.feature/camille.target @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="UTF-8" standalone="no"?> -<?pde version="3.8"?><target name="camille_target" sequenceNumber="89"> +<?pde version="3.8"?><target name="camille_target" sequenceNumber="90"> <locations> <location includeAllPlatforms="true" includeConfigurePhase="false" includeMode="slicer" includeSource="true" type="InstallableUnit"> <unit id="org.eclipse.emf.compare.ide.ui.feature.group" version="3.3.2.201709090201"/> @@ -22,11 +22,11 @@ <repository location="https://www3.hhu.de/stups/buildlibs/org.rodinp.dev/"/> </location> <location includeAllPlatforms="true" includeConfigurePhase="false" includeMode="slicer" includeSource="true" type="InstallableUnit"> -<unit id="org.eclipse.emf.compare.feature.group" version="3.3.2.201709090201"/> -<unit id="org.eclipse.emf.compare.ide.ui.source.feature.group" version="3.3.2.201709090201"/> -<unit id="org.eclipse.emf.compare.rcp.ui.feature.group" version="3.3.2.201709090201"/> -<unit id="org.eclipse.emf.compare.rcp.ui.source.feature.group" version="3.3.2.201709090201"/> -<unit id="org.eclipse.emf.compare.source.feature.group" version="3.3.2.201709090201"/> +<unit id="org.eclipse.emf.compare.feature.group" version="3.3.4.201806221350"/> +<unit id="org.eclipse.emf.compare.ide.ui.source.feature.group" version="3.3.4.201806221350"/> +<unit id="org.eclipse.emf.compare.rcp.ui.feature.group" version="3.3.4.201806221350"/> +<unit id="org.eclipse.emf.compare.rcp.ui.source.feature.group" version="3.3.4.201806221350"/> +<unit id="org.eclipse.emf.compare.source.feature.group" version="3.3.4.201806221350"/> <repository location="http://download.eclipse.org/modeling/emf/compare/updates/releases"/> </location> </locations> diff --git a/org.eventb.texteditor.feature/camille_with_statemachines.target b/org.eventb.texteditor.feature/camille_with_statemachines.target index 4cd7421efc7d3962aa1192bd90d0935f6028f3aa..0dddd2e161c3cd8e8ce2670d1c93bc3b3c43161b 100644 --- a/org.eventb.texteditor.feature/camille_with_statemachines.target +++ b/org.eventb.texteditor.feature/camille_with_statemachines.target @@ -1,23 +1,21 @@ <?xml version="1.0" encoding="UTF-8" standalone="no"?> -<?pde version="3.8"?><target name="prob_target" sequenceNumber="75"> +<?pde version="3.8"?><target name="prob_target" sequenceNumber="80"> <locations> <location includeAllPlatforms="true" includeConfigurePhase="false" includeMode="planner" includeSource="true" type="InstallableUnit"> -<unit id="org.rodinp.platform.product" version="3.1.0.201412171041-e1a03f3"/> +<unit id="org.rodinp.platform.product" version="3.2.0.201506220911-ecacdcb"/> <repository location="http://rodin-b-sharp.sourceforge.net/core-updates/"/> </location> <location includeAllPlatforms="true" includeConfigurePhase="false" includeMode="planner" includeSource="true" type="InstallableUnit"> -<unit id="org.eclipse.emf.sdk.feature.group" version="2.10.2.v20150123-0452"/> -<unit id="org.eclipse.emf.compare.source.feature.group" version="3.0.2.201501201328"/> -<unit id="org.eclipse.emf.compare.ide.ui.source.feature.group" version="3.0.2.201501201328"/> -<repository location="http://download.eclipse.org/releases/luna"/> +<unit id="ac.soton.eventb.roseEditor.feature.feature.group" version="1.7.0.release"/> +<unit id="org.eventb.emf.feature.feature.group" version="6.0.0.release"/> +<repository location="http://rodin-b-sharp.sourceforge.net/updates/"/> </location> <location includeAllPlatforms="true" includeConfigurePhase="false" includeMode="planner" includeSource="true" type="InstallableUnit"> -<unit id="org.eventb.emf.feature.feature.group" version="5.3.0"/> -<unit id="ac.soton.eventb.statemachines.feature.feature.group" version="3.2.0"/> -<unit id="ac.soton.eventb.roseEditor.feature.feature.group" version="1.6.0"/> -<unit id="org.eventb.theory.feature.feature.group" version="3.0.0"/> -<unit id="ac.soton.eventb.emf.core.extension.feature.feature.group" version="5.1.0"/> -<repository location="http://rodin-b-sharp.sourceforge.net/updates/"/> +<unit id="org.eclipse.emf.compare.ide.ui.feature.group" version="3.3.2.201709090201"/> +<unit id="org.eclipse.emf.sdk.feature.group" version="2.13.0.v20170609-0928"/> +<unit id="org.eclipse.pde.feature.group" version="3.13.4.v20180330-0640"/> +<unit id="org.eclipse.sdk.feature.group" version="4.7.3.v20180330-0919"/> +<repository location="http://download.eclipse.org/releases/oxygen/201804111000"/> </location> </locations> </target> diff --git a/org.eventb.texteditor.feature/category.xml b/org.eventb.texteditor.feature/category.xml index e6e12536e5f71fae41fa5f95d4294bfb8db6cea0..73b09e9f2c22888548570331fcebf0e89a013c60 100644 --- a/org.eventb.texteditor.feature/category.xml +++ b/org.eventb.texteditor.feature/category.xml @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="UTF-8"?> <site> - <feature url="features/org.eventb.texteditor.feature_2.2.0.jar" id="org.eventb.texteditor.feature" version="2.2.0"> + <feature url="features/org.eventb.texteditor.feature_3.3.0.qualifier.jar" id="org.eventb.texteditor.feature" version="3.3.0.qualifier"> <category name="camille"/> </feature> <category-def name="camille" label="camille"/> diff --git a/org.eventb.texteditor.feature/feature.xml b/org.eventb.texteditor.feature/feature.xml index b8e755c04e54164101a1fbcff6a4f17d871817a6..ae6e3dad79202b9d0e554b41ea9ef9690e5a2665 100644 --- a/org.eventb.texteditor.feature/feature.xml +++ b/org.eventb.texteditor.feature/feature.xml @@ -2,7 +2,7 @@ <feature id="org.eventb.texteditor.feature" label="Camille TextEditor" - version="3.2.0.qualifier" + version="3.3.0.qualifier" provider-name="Heinrich-Heine University Dusseldorf" plugin="org.eventb.texteditor.ui"> @@ -10,8 +10,10 @@ A text editor for the Rodin platform to edit Event-B models ----------------------------------------------------------- Release History: +3.3.0 - Compatibility with core 3.3 3.2.0 - Rodin 3.2 compatible release -3.1.2 - Fix some more bugs regarding theory parsing, fix saving changes to seen contexts. +3.1.2 - Fix some more bugs regarding theory parsing, fix saving +changes to seen contexts. 3.1.1 - Fix parsing of theory operators with more than one operand 3.1.0 - Initial release for Rodin 3.1 3.0.3 - Fix bugs / regressions intruduces by the Rodin 3.0 migration @@ -170,41 +172,53 @@ Inc. in the United States, other countries, or both. </url> <requires> - <import plugin="org.eventb.texttools" version="3.0.0" match="greaterOrEqual"/> - <import plugin="org.eventb.emf.formulas" version="1.3.2" match="greaterOrEqual"/> - <import plugin="org.eventb.emf.persistence" version="3.1.0" match="greaterOrEqual"/> - <import plugin="org.eventb.ui" version="3.0.0" match="greaterOrEqual"/> + <import plugin="org.eventb.emf.formulas" version="1.4.0" match="compatible"/> + <import plugin="org.eventb.emf.persistence" version="3.1.1" match="compatible"/> + <import plugin="org.eventb.ui" version="3.0.0" match="compatible"/> <import plugin="org.eclipse.jface.text" version="3.6.0" match="compatible"/> <import plugin="org.eclipse.emf.edit.ui" version="2.5.0" match="compatible"/> - <import plugin="org.eventb.core.ast" version="3.0.0" match="greaterOrEqual"/> + <import plugin="org.eventb.core.ast" version="3.1.0" match="compatible"/> <import plugin="org.eclipse.ui.editors" version="3.8.0" match="compatible"/> <import plugin="org.eclipse.ui.ide" version="3.8.2" match="compatible"/> - <import plugin="org.rodinp.keyboard.ui" version="2.0.0" match="compatible"/> <import plugin="org.eclipse.ui.workbench.texteditor"/> + <import plugin="org.eclipse.core.resources" version="3.8.1" match="greaterOrEqual"/> + <import plugin="org.eventb.emf.core" version="4.0.0"/> + <import plugin="org.eclipse.core.runtime" version="3.10.0" match="greaterOrEqual"/> + <import plugin="org.eclipse.emf.ecore.xmi" version="2.10.1" match="greaterOrEqual"/> + <import plugin="org.rodinp.core" version="1.7.0" match="greaterOrEqual"/> + <import plugin="org.eventb.core" version="3.1.0" match="greaterOrEqual"/> + <import plugin="org.eclipse.emf.edit"/> + <import plugin="org.eventb.texteditor.parsers"/> + <import plugin="org.rodinp.keyboard.core" version="2.0.0" match="compatible"/> + <import plugin="org.rodinp.keyboard.ui" version="2.0.0" match="compatible"/> <import plugin="org.eclipse.core.resources" version="3.8.1" match="compatible"/> - <import plugin="org.eventb.emf.core" version="4.0.0" match="greaterOrEqual"/> - <import feature="org.eclipse.emf.compare" version="3.0.1" match="compatible"/> + <import plugin="org.eclipse.emf.ecore"/> + <import plugin="org.eclipse.emf.compare" version="3.1.1" match="greaterOrEqual"/> + <import plugin="org.eclipse.emf.compare.edit" version="4.0.0" match="greaterOrEqual"/> + <import plugin="org.eclipse.emf.compare.ide" version="3.1.1" match="greaterOrEqual"/> + <import plugin="org.eclipse.emf.compare.rcp" version="2.2.0" match="greaterOrEqual"/> + <import plugin="org.eventb.core" version="3.1.0" match="compatible"/> </requires> <plugin id="org.eventb.texteditor.ui" download-size="0" install-size="0" - version="3.2.0.qualifier" + version="3.3.0.qualifier" unpack="false"/> <plugin id="org.eventb.texttools" download-size="0" install-size="0" - version="3.2.0.qualifier" + version="3.3.0.qualifier" unpack="false"/> <plugin id="org.eventb.texteditor.parsers" download-size="0" install-size="0" - version="3.2.0.qualifier" + version="3.3.0.qualifier" unpack="false"/> </feature> diff --git a/org.eventb.texteditor.feature/pom.xml b/org.eventb.texteditor.feature/pom.xml index 160a6ab2ac1632b67fb6a53f0f4cece4d639c6f7..0c4c3bb9827b850a35ca7dff533d47df7d7c1e07 100644 --- a/org.eventb.texteditor.feature/pom.xml +++ b/org.eventb.texteditor.feature/pom.xml @@ -6,11 +6,11 @@ <parent> <groupId>org.eventb.texteditor</groupId> <artifactId>org.eventb.texteditor.parent</artifactId> - <version>3.2.0.qualifier</version> + <version>3.3.0.qualifier</version> <relativePath>../org.eventb.texteditor.parent/pom.xml</relativePath> </parent> <groupId>org.eventb.texteditor</groupId> <artifactId>org.eventb.texteditor.feature</artifactId> - <version>3.2.0.qualifier</version> + <version>3.3.0.qualifier</version> <packaging>eclipse-feature</packaging> </project> diff --git a/org.eventb.texteditor.parsers/META-INF/MANIFEST.MF b/org.eventb.texteditor.parsers/META-INF/MANIFEST.MF index 272610751a6a92898670f5795db97b36032f2726..00c5209969b23583a54f0769b7d18a044e199eaf 100644 --- a/org.eventb.texteditor.parsers/META-INF/MANIFEST.MF +++ b/org.eventb.texteditor.parsers/META-INF/MANIFEST.MF @@ -2,7 +2,7 @@ Manifest-Version: 1.0 Bundle-ManifestVersion: 2 Bundle-Name: Parsers for Camille Bundle-SymbolicName: org.eventb.texteditor.parsers -Bundle-Version: 3.2.0.qualifier +Bundle-Version: 3.3.0.qualifier Bundle-Activator: org.eventb.texteditor.parsers.Activator Require-Bundle: org.eclipse.core.runtime Bundle-RequiredExecutionEnvironment: JavaSE-1.7 diff --git a/org.eventb.texteditor.ui/META-INF/MANIFEST.MF b/org.eventb.texteditor.ui/META-INF/MANIFEST.MF index 508f5e6d1ad22cae8d245b9e4f988bfdb36e7c1d..243fa8deec2749945ddd0ba124a8cc9242d925e1 100644 --- a/org.eventb.texteditor.ui/META-INF/MANIFEST.MF +++ b/org.eventb.texteditor.ui/META-INF/MANIFEST.MF @@ -2,10 +2,10 @@ Manifest-Version: 1.0 Bundle-ManifestVersion: 2 Bundle-Name: Camille Texteditor Bundle-SymbolicName: org.eventb.texteditor.ui;singleton:=true -Bundle-Version: 3.2.0.qualifier +Bundle-Version: 3.3.0.qualifier Bundle-Localization: plugin Bundle-Activator: org.eventb.texteditor.ui.TextEditorPluginImplementation -Require-Bundle: org.eventb.texttools;bundle-version="[3.1.0,3.3.0)";visibility:=reexport, +Require-Bundle: org.eventb.texttools;bundle-version="[3.1.0,3.4.0)";visibility:=reexport, org.eventb.emf.formulas;bundle-version="[1.4.0,2.0.0)", org.eventb.emf.persistence;bundle-version="[3.1.1,4.0.0)";visibility:=reexport, org.eventb.ui;bundle-version="[3.0.0,4.0.0)";visibility:=reexport, @@ -16,7 +16,7 @@ Require-Bundle: org.eventb.texttools;bundle-version="[3.1.0,3.3.0)";visibility:= org.eclipse.ui.ide;bundle-version="[3.8.2,4.0.0)", org.eclipse.ui.workbench.texteditor, org.eclipse.core.resources;bundle-version="3.8.1", - org.eventb.emf.core;bundle-version="[4.0.0,5.0.0)", + org.eventb.emf.core;bundle-version="[4.0.0,6.0.0)", org.eclipse.core.runtime;bundle-version="3.10.0", org.eclipse.emf.ecore.xmi;bundle-version="2.10.1", org.rodinp.core;bundle-version="1.7.0", diff --git a/org.eventb.texteditor.ui/src/org/eventb/texteditor/ui/outline/ContentProvider.java b/org.eventb.texteditor.ui/src/org/eventb/texteditor/ui/outline/ContentProvider.java index c62af5447617971245e1f0aef8268018c27a7dae..fa98c9d7721a25e3b71ad2762d480bb4e3f7727f 100644 --- a/org.eventb.texteditor.ui/src/org/eventb/texteditor/ui/outline/ContentProvider.java +++ b/org.eventb.texteditor.ui/src/org/eventb/texteditor/ui/outline/ContentProvider.java @@ -20,7 +20,6 @@ import org.eventb.emf.core.EventBObject; import org.eventb.emf.core.context.Context; import org.eventb.emf.core.machine.Event; import org.eventb.emf.core.machine.Machine; -import org.eventb.emf.core.machine.Variant; import org.eventb.texteditor.ui.TextEditorPlugin; import org.eventb.texteditor.ui.build.dom.DomManager; import org.eventb.texteditor.ui.build.dom.IParseResultListener; @@ -167,12 +166,7 @@ public class ContentProvider implements ITreeContentProvider, final ArrayList<EventBObject> children = new ArrayList<EventBObject>(); children.addAll(machine.getVariables()); children.addAll(machine.getInvariants()); - - final Variant variant = machine.getVariant(); - if (variant != null) { - children.add(variant); - } - + children.addAll(machine.getVariants()); children.addAll(machine.getEvents()); machineChildren = children.toArray(); diff --git a/org.eventb.texttools/META-INF/MANIFEST.MF b/org.eventb.texttools/META-INF/MANIFEST.MF index 301e326c3cb5b6f7ca1fbfdaf9b511750e1cfef7..62027cb81d7e457a4135c1260aaa7bb485bb760f 100644 --- a/org.eventb.texttools/META-INF/MANIFEST.MF +++ b/org.eventb.texttools/META-INF/MANIFEST.MF @@ -2,7 +2,7 @@ Manifest-Version: 1.0 Bundle-ManifestVersion: 2 Bundle-Name: Event-B EMF Texttools Bundle-SymbolicName: org.eventb.texttools;singleton:=true -Bundle-Version: 3.2.0.qualifier +Bundle-Version: 3.3.0.qualifier Bundle-Activator: org.eventb.texttools.TextToolsPlugin Require-Bundle: org.eclipse.jface.text;bundle-version="[3.6.0,4.0.0)", org.eventb.emf.formulas;bundle-version="[1.4.0,2.0.0)", @@ -12,7 +12,7 @@ Require-Bundle: org.eclipse.jface.text;bundle-version="[3.6.0,4.0.0)", org.eclipse.emf.ecore, org.eventb.texteditor.parsers, org.eclipse.core.runtime;bundle-version="3.10.0", - org.eventb.emf.core;bundle-version="[4.0.0,5.0.0)", + org.eventb.emf.core;bundle-version="[4.0.0,6.0.0)", org.rodinp.core;bundle-version="1.7.0", org.eclipse.emf.compare;bundle-version="3.1.1", org.eclipse.emf.compare.edit;bundle-version="4.0.0", diff --git a/org.eventb.texttools/old/org/eventb/texttools/diff/EventBAttributesCheck.java b/org.eventb.texttools/old/org/eventb/texttools/diff/EventBAttributesCheck.java old mode 100755 new mode 100644 diff --git a/org.eventb.texttools/old/org/eventb/texttools/diff/EventBDiffEngine.java b/org.eventb.texttools/old/org/eventb/texttools/diff/EventBDiffEngine.java old mode 100755 new mode 100644 diff --git a/org.eventb.texttools/old/org/eventb/texttools/diff/EventBReferencesCheck.java b/org.eventb.texttools/old/org/eventb/texttools/diff/EventBReferencesCheck.java old mode 100755 new mode 100644 diff --git a/org.eventb.texttools/src/org/eventb/texttools/PersistenceHelper.java b/org.eventb.texttools/src/org/eventb/texttools/PersistenceHelper.java old mode 100755 new mode 100644 index 942366488005a8c88abfa256f1d17be14b90369a..8823c16356207380f2a30b59c4efc3fd2d2f583a --- a/org.eventb.texttools/src/org/eventb/texttools/PersistenceHelper.java +++ b/org.eventb.texttools/src/org/eventb/texttools/PersistenceHelper.java @@ -27,7 +27,6 @@ import org.eclipse.emf.compare.DifferenceState; import org.eclipse.emf.compare.EMFCompare; import org.eclipse.emf.compare.diff.DefaultDiffEngine; import org.eclipse.emf.compare.diff.IDiffEngine; -import org.eclipse.emf.compare.internal.spec.ReferenceChangeSpec; import org.eclipse.emf.compare.match.DefaultComparisonFactory; import org.eclipse.emf.compare.match.DefaultEqualityHelperFactory; import org.eclipse.emf.compare.match.IComparisonFactory; @@ -35,12 +34,9 @@ import org.eclipse.emf.compare.match.IMatchEngine; import org.eclipse.emf.compare.match.eobject.IEObjectMatcher; import org.eclipse.emf.compare.match.impl.MatchEngineFactoryImpl; import org.eclipse.emf.compare.match.impl.MatchEngineFactoryRegistryImpl; -import org.eclipse.emf.compare.merge.BatchMerger; -import org.eclipse.emf.compare.merge.ConflictMerger; import org.eclipse.emf.compare.merge.IMerger; import org.eclipse.emf.compare.merge.IMerger.Registry; import org.eclipse.emf.compare.merge.IMerger.RegistryImpl; -import org.eclipse.emf.compare.merge.PseudoConflictMerger; import org.eclipse.emf.compare.scope.DefaultComparisonScope; import org.eclipse.emf.compare.scope.IComparisonScope; import org.eclipse.emf.ecore.EClass; @@ -54,7 +50,6 @@ import org.eventb.emf.core.EventBNamedCommentedComponentElement; import org.eventb.texttools.diffmerge.EventBDiffProcessor; import org.eventb.texttools.diffmerge.EventBEObjectMatcher; import org.eventb.texttools.diffmerge.EventBMerger; -import org.eventb.texttools.diffmerge.EventBMerger; import org.eventb.texttools.prettyprint.PrettyPrinter; import de.be4.eventb.core.parser.BException; @@ -64,7 +59,6 @@ import de.be4.eventb.core.parser.node.AMachineParseUnit; import de.be4.eventb.core.parser.node.PParseUnit; import de.be4.eventb.core.parser.node.Start; -//import org.eventb.texttools.merge.ModelMerge; public class PersistenceHelper { @@ -117,7 +111,6 @@ public class PersistenceHelper { public static void addTextAnnotation(final Resource resource, final String textRepresentation, final long timeStamp) throws CoreException { -//System.out.println("TEXT1:"+textRepresentation); final EventBNamedCommentedComponentElement component = getComponent(resource); if (component != null) { addTextAnnotation(component, textRepresentation, timeStamp); @@ -133,7 +126,6 @@ public class PersistenceHelper { final EMap<String, Attribute> attributes = element.getAttributes(); // update text representation -//System.out.println("TEXT2:"+textRepresentation); Attribute textAttribute = attributes .get(TextToolsPlugin.TYPE_TEXTREPRESENTATION.getId()); if (textAttribute == null) { @@ -176,7 +168,7 @@ public class PersistenceHelper { if (d.getState() != DifferenceState.MERGED) evbMerger.copyRightToLeft(d,null); } catch(Exception e) { - System.out.println("SKIP:"+d); + System.out.println("SKIPPED:"+d); } } diff --git a/org.eventb.texttools/src/org/eventb/texttools/diffmerge/EventBMerger.java b/org.eventb.texttools/src/org/eventb/texttools/diffmerge/EventBMerger.java index 39774f84be3427b5ef31423f7816650959672a05..397a0d16a0e4b9e0a5ee9ee2ee785705f47f93ea 100644 --- a/org.eventb.texttools/src/org/eventb/texttools/diffmerge/EventBMerger.java +++ b/org.eventb.texttools/src/org/eventb/texttools/diffmerge/EventBMerger.java @@ -17,26 +17,21 @@ public class EventBMerger extends AbstractMerger { @Override public boolean isMergerFor(Diff target) { - //FIXME: could return true in all cases??? + String pack = ""; if (target instanceof ReferenceChange) { - ReferenceChange rtarget = (ReferenceChange) target; - EReference reference = rtarget.getReference(); - if (reference.getName().equals("extends") - || reference.getName().equals("refines") - || reference.getName().equals("sees")) { - return true; - } - //FIXME: find a way to avoid naming all core MM attributes - //but test seems useless ... => always returns true? - if (reference.getName().contains("extension")) { - System.out.println("REFERENCE:"+reference.getName()); - return false; - } - return true; - } else if (target instanceof AttributeChange) - return true; - System.out.println("TARGET:"+target); - return false; + ReferenceChange rc = (ReferenceChange) target; + pack = rc.getReference().getEContainingClass().getEPackage().getName(); + //System.out.println("REF PACK:"+pack); + } else if (target instanceof AttributeChange) { + AttributeChange ac = (AttributeChange) target; + pack = ac.getAttribute().getEContainingClass().getEPackage().getName(); + //System.out.println("ATTR PACK:"+pack); + } else { + System.out.println("TARGET:"+target); + return false; + } + return pack.equals("core") || pack.equals("machine") || pack.equals("context") || pack.equals("formulas"); + } //@Override @@ -50,6 +45,11 @@ public class EventBMerger extends AbstractMerger { // do we always merge right to left in Camille? assert (rightToLeft); + if (!isMergerFor(diff)) { + super.reject(diff, rightToLeft); + return; + } + EObject left = diff.getMatch().getLeft(); EObject right = diff.getMatch().getRight(); @@ -65,6 +65,7 @@ public class EventBMerger extends AbstractMerger { ReferenceChange d = (ReferenceChange) diff; //System.out.println("REF CHANGE:"+d.getReference()); //System.out.println("REF VALUE:"+ d.getValue()); + rm.copyRightToLeft(diff,null); Object l = left.eGet(d.getReference()); Object r = right.eGet(d.getReference()); @@ -77,6 +78,7 @@ public class EventBMerger extends AbstractMerger { AttributeChange d = (AttributeChange) diff; //System.out.println("ATTR CHANGE:"+d.getAttribute()); //System.out.println("ATTR VALUE:"+ d.getValue()); + am.copyRightToLeft(diff,null); Object l = left.eGet(d.getAttribute()); Object r = right.eGet(d.getAttribute()); diff --git a/org.eventb.texttools/src/org/eventb/texttools/formulas/FormulaResolver.java b/org.eventb.texttools/src/org/eventb/texttools/formulas/FormulaResolver.java index 5bf3c5af00a8a4c3f7d75ab295c95452035c5428..1513cd146551d6f76dd2c7e5ac3ad82d5c16b53f 100644 --- a/org.eventb.texttools/src/org/eventb/texttools/formulas/FormulaResolver.java +++ b/org.eventb.texttools/src/org/eventb/texttools/formulas/FormulaResolver.java @@ -17,7 +17,7 @@ import org.eventb.core.IMachineRoot; import org.eventb.core.ast.ASTProblem; import org.eventb.core.ast.FormulaFactory; import org.eventb.core.ast.IParseResult; -import org.eventb.emf.core.EventBCommentedExpressionElement; +import org.eventb.emf.core.EventBNamedCommentedExpressionElement; import org.eventb.emf.core.EventBElement; import org.eventb.emf.core.EventBNamedCommentedComponentElement; import org.eventb.emf.core.EventBNamedCommentedPredicateElement; @@ -92,7 +92,7 @@ public class FormulaResolver { return exceptions; } - public static void resolve(final EventBCommentedExpressionElement emfExpr) + public static void resolve(final EventBNamedCommentedExpressionElement emfExpr) throws FormulaParseException { final String expression = emfExpr.getExpression(); resolve(emfExpr, expression, diff --git a/org.eventb.texttools/src/org/eventb/texttools/formulas/MachineResolveSwitch.java b/org.eventb.texttools/src/org/eventb/texttools/formulas/MachineResolveSwitch.java index 5821eef6cad6e7859dee3a10f9c089f0f6ce7983..52fc1b3698eb9dd6679611a0ef195444fb49b22b 100644 --- a/org.eventb.texttools/src/org/eventb/texttools/formulas/MachineResolveSwitch.java +++ b/org.eventb.texttools/src/org/eventb/texttools/formulas/MachineResolveSwitch.java @@ -9,7 +9,7 @@ package org.eventb.texttools.formulas; import java.util.ArrayList; import java.util.List; -import org.eventb.emf.core.EventBCommentedExpressionElement; +import org.eventb.emf.core.EventBNamedCommentedExpressionElement; import org.eventb.emf.core.EventBNamedCommentedPredicateElement; import org.eventb.emf.core.EventBObject; import org.eventb.emf.core.machine.Action; @@ -38,8 +38,8 @@ public class MachineResolveSwitch extends MachineSwitch<Boolean> { } @Override - public Boolean caseEventBCommentedExpressionElement( - final EventBCommentedExpressionElement object) { + public Boolean caseEventBNamedCommentedExpressionElement( + final EventBNamedCommentedExpressionElement object) { try { FormulaResolver.resolve(object); } catch (final FormulaParseException e) { diff --git a/org.eventb.texttools/src/org/eventb/texttools/internal/parsing/TransformationVisitor.java b/org.eventb.texttools/src/org/eventb/texttools/internal/parsing/TransformationVisitor.java index 6d415d8a9549af6a1d379eb69e0230c2471a1851..4e034fc6d01f20f3adfa3122146aee86778c4e25 100644 --- a/org.eventb.texttools/src/org/eventb/texttools/internal/parsing/TransformationVisitor.java +++ b/org.eventb.texttools/src/org/eventb/texttools/internal/parsing/TransformationVisitor.java @@ -107,11 +107,12 @@ public class TransformationVisitor extends DepthFirstAdapter { // variant if (node.getVariant() != null) { - newNode.setVariant((Variant) stack.pop()); + newNode.getVariants().add((Variant) stack.pop()); } + // TODO theorems - // final EList<Theorem> theorems = newNode.getTheorems(); + //final EList<Theorem> theorems = newNode.getTheorems(); // handleList(theorems, node.getTheorems().size()); handleList(newNode.getInvariants(), node.getInvariants().size()); diff --git a/org.eventb.texttools/src/org/eventb/texttools/prettyprint/MachinePrintSwitch.java b/org.eventb.texttools/src/org/eventb/texttools/prettyprint/MachinePrintSwitch.java index 99eb64f8e65bd2e6b18364e9b665f8788df1aa18..bf54a6043588b333117a2e11c79096bf60e87ce5 100644 --- a/org.eventb.texttools/src/org/eventb/texttools/prettyprint/MachinePrintSwitch.java +++ b/org.eventb.texttools/src/org/eventb/texttools/prettyprint/MachinePrintSwitch.java @@ -71,13 +71,7 @@ public class MachinePrintSwitch extends MachineSwitch<Boolean> implements printInvariants(object.getInvariants(), newLine); // variant - final Variant variant = object.getVariant(); - if (variant != null) { - if (newLine) { - printer.appendLineBreak(); - } - doSwitch(variant); - } + printVariants(object.getVariants(), newLine); // events printEvents(object.getEvents(), newLine); @@ -121,7 +115,6 @@ public class MachinePrintSwitch extends MachineSwitch<Boolean> implements @Override public Boolean caseVariant(final Variant object) { - printer.appendWithSpace(VARIANT); printer.appendFormula(object.getExpression(), printer .hasComment(object)); printer.appendComment(object); @@ -251,6 +244,24 @@ public class MachinePrintSwitch extends MachineSwitch<Boolean> implements } } + private void printVariants(final EList<Variant> variants, + final boolean newLine) { + if (variants.size() > 0) { + if (newLine) { + printer.appendLineBreak(); + } + + printer.appendWithLineBreak(VARIANT); + printer.increaseIndentLevel(); + + for (final Variant variant : variants) { + doSwitch(variant); + } + + printer.decreaseIndentLevel(); + } + } + private void printEvents(final EList<Event> events, final boolean newLine) { if (events.size() > 0) { if (newLine) {