From 708d4ac69f79fbaa99269370a6ae4e93e33954fe Mon Sep 17 00:00:00 2001 From: Michael Leuschel <leuschel@uni-duesseldorf.de> Date: Thu, 14 Nov 2024 09:54:50 +0100 Subject: [PATCH] export comments of variables as description pragmas Signed-off-by: Michael Leuschel <leuschel@uni-duesseldorf.de> --- .../translator/internal/ModelTranslator.java | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) 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 407412ff..80ad1bb5 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 @@ -37,6 +37,7 @@ import org.eventb.core.ISCVariable; import org.eventb.core.ISCVariant; import org.eventb.core.ISCWitness; import org.eventb.core.ITraceableElement; +import org.eventb.core.IVariable; import org.eventb.core.IVariant; import org.eventb.core.ast.Assignment; import org.eventb.core.ast.FormulaFactory; @@ -52,6 +53,7 @@ import org.rodinp.core.RodinDBException; import de.be4.classicalb.core.parser.node.AAnticipatedEventstatus; import de.be4.classicalb.core.parser.node.AConvergentEventstatus; import de.be4.classicalb.core.parser.node.ADescriptionEvent; +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.AEvent; @@ -452,7 +454,17 @@ public class ModelTranslator extends AbstractComponentTranslator { variable.getIdentifierString()); final AIdentifierExpression id = new AIdentifierExpression( Arrays.asList(new TIdentifierLiteral[] { literal })); - list.add(id); + + final IVariable ucv = (IVariable) variable.getSource(); // comments only attached in unchecked source + if (ucv.hasAttribute(EventBAttributes.COMMENT_ATTRIBUTE)) { + final String commentString = ucv.getAttributeValue(EventBAttributes.COMMENT_ATTRIBUTE); + final TPragmaFreeText desc = new TPragmaFreeText(commentString); + ADescriptionPragma descPragma = new ADescriptionPragma(Collections.singletonList(desc)); + final ADescriptionExpression descid = new ADescriptionExpression(descPragma,id); + list.add(descid); + } else { + list.add(id); + } } } variablesModelClause.setIdentifiers(list); -- GitLab