From ea1e6dd69b4348905b2c31be96aeb02915be8386 Mon Sep 17 00:00:00 2001 From: Michael Leuschel <leuschel@uni-duesseldorf.de> Date: Fri, 14 Feb 2025 14:07:53 +0100 Subject: [PATCH] extract comments for witnesses as desc pragmas Signed-off-by: Michael Leuschel <leuschel@uni-duesseldorf.de> --- .../translator/internal/ModelTranslator.java | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/de.prob.core/src/de/prob/eventb/translator/internal/ModelTranslator.java b/de.prob.core/src/de/prob/eventb/translator/internal/ModelTranslator.java index bf8135a6..5924907f 100644 --- a/de.prob.core/src/de/prob/eventb/translator/internal/ModelTranslator.java +++ b/de.prob.core/src/de/prob/eventb/translator/internal/ModelTranslator.java @@ -40,6 +40,7 @@ import org.eventb.core.ISCWitness; import org.eventb.core.ITraceableElement; import org.eventb.core.IVariable; import org.eventb.core.IVariant; +import org.eventb.core.IWitness; import org.eventb.core.ast.Assignment; import org.eventb.core.ast.FormulaFactory; import org.eventb.core.ast.ITypeEnvironment; @@ -503,8 +504,18 @@ public class ModelTranslator extends AbstractComponentTranslator { witness); final TIdentifierLiteral label = new TIdentifierLiteral( witness.getLabel()); - witnessList.add(new AWitness(label, predicate)); - labelMapping.put(predicate, witness); + final IWitness ucw = (IWitness) witness.getSource(); // comments only attached in unchecked + if (ucw.hasAttribute(EventBAttributes.COMMENT_ATTRIBUTE)) { + final String commentString = ucw.getAttributeValue(EventBAttributes.COMMENT_ATTRIBUTE); + final TPragmaFreeText desc = new TPragmaFreeText(commentString); + ADescriptionPragma descPragma = new ADescriptionPragma(Collections.singletonList(desc)); + ADescriptionPredicate dpred = new ADescriptionPredicate(descPragma, predicate); + witnessList.add(new AWitness(label, dpred)); + labelMapping.put(dpred, witness); + } else { + witnessList.add(new AWitness(label, predicate)); + labelMapping.put(predicate, witness); + } } return witnessList; } -- GitLab