diff --git a/de.prob.core/src/de/prob/eventb/translator/ContextTranslator.java b/de.prob.core/src/de/prob/eventb/translator/ContextTranslator.java index af6fd02ff4545b7d6d97a1fc341fdab6036289c5..0174b35d77b87dbaa7d965377330e98d4b37b072 100644 --- a/de.prob.core/src/de/prob/eventb/translator/ContextTranslator.java +++ b/de.prob.core/src/de/prob/eventb/translator/ContextTranslator.java @@ -18,6 +18,7 @@ import org.eclipse.core.runtime.Assert; import org.eclipse.core.runtime.CoreException; import org.eventb.core.EventBAttributes; import org.eventb.core.IAxiom; +import org.eventb.core.ICarrierSet; import org.eventb.core.IContextRoot; import org.eventb.core.IEventBRoot; import org.eventb.core.IExtendsContext; @@ -52,6 +53,7 @@ import de.be4.classicalb.core.parser.node.ADeferredSetSet; import de.be4.classicalb.core.parser.node.ADescriptionExpression; import de.be4.classicalb.core.parser.node.ADescriptionPragma; import de.be4.classicalb.core.parser.node.ADescriptionPredicate; +import de.be4.classicalb.core.parser.node.ADescriptionSet; import de.be4.classicalb.core.parser.node.AEventBContextParseUnit; import de.be4.classicalb.core.parser.node.AExtendsContextClause; import de.be4.classicalb.core.parser.node.AIdentifierExpression; @@ -314,9 +316,22 @@ public final class ContextTranslator extends AbstractComponentTranslator { final ISCCarrierSet[] carrierSets = context.getSCCarrierSets(); final List<PSet> setList = new ArrayList<PSet>(carrierSets.length); for (final ISCCarrierSet carrierSet : carrierSets) { + final ADeferredSetSet deferredSet = new ADeferredSetSet(Arrays .asList(new TIdentifierLiteral[] { new TIdentifierLiteral(carrierSet.getIdentifierString()) })); - setList.add(deferredSet); + + final ICarrierSet ucs = (ICarrierSet) carrierSet.getSource(); // comments only attached in unchecked source + if (ucs.hasAttribute(EventBAttributes.COMMENT_ATTRIBUTE)) { + final String commentString = ucs.getAttributeValue(EventBAttributes.COMMENT_ATTRIBUTE); + System.out.println("Carrier set " + carrierSet + " has comment " + commentString); + + final TPragmaFreeText desc = new TPragmaFreeText(commentString); + ADescriptionPragma descPragma = new ADescriptionPragma(Collections.singletonList(desc)); + final ADescriptionSet descid = new ADescriptionSet(descPragma,deferredSet); + setList.add(descid); + } else { + setList.add(deferredSet); + } } return new ASetsContextClause(setList); }