From 5078267e77ecad48148125294ab26d286c9689b6 Mon Sep 17 00:00:00 2001 From: Marvin Vogel <91740473+marvinvo@users.noreply.github.com> Date: Sat, 22 Jan 2022 10:12:55 +0100 Subject: [PATCH] Fix for issue #457 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The previous parsing code was actually a dublicate of the getPredicate() method, but it had no check for the “consPred” field, in which ‘alg(’, ‘mode(’ and ‘pad(’ is defined. --- .../cognicrypt/crysl/reader/CrySLParser.java | 24 ++----------------- 1 file changed, 2 insertions(+), 22 deletions(-) diff --git a/plugins/de.cognicrypt.crysl.handler/src/main/java/de/cognicrypt/crysl/reader/CrySLParser.java b/plugins/de.cognicrypt.crysl.handler/src/main/java/de/cognicrypt/crysl/reader/CrySLParser.java index e4fde3170..0c3536e7c 100644 --- a/plugins/de.cognicrypt.crysl.handler/src/main/java/de/cognicrypt/crysl/reader/CrySLParser.java +++ b/plugins/de.cognicrypt.crysl.handler/src/main/java/de/cognicrypt/crysl/reader/CrySLParser.java @@ -339,7 +339,6 @@ private List retrieveReqPredFromAltPreds(ReqPred left) { } private CrySLPredicate extractReqPred(final ReqPred pred) { - final List variables = new ArrayList<>(); PredLit innerPred = (PredLit) pred; EObject cons = innerPred.getCons(); ISLConstraint conditional = null; @@ -348,27 +347,8 @@ private CrySLPredicate extractReqPred(final ReqPred pred) { } else if (cons instanceof Pred) { conditional = getPredicate((Pred) cons); } - if (innerPred.getPred().getParList() != null) { - for (final SuPar var : innerPred.getPred().getParList().getParameters()) { - if (var.getVal() != null) { - final LiteralExpression lit = var.getVal(); - - final ObjectImpl object = (ObjectImpl) ((LiteralExpression) lit.getLit().getName()).getValue(); - final String type = ((ObjectDecl) object.eContainer()).getObjectType().getQualifiedName(); - final String variable = object.getName(); - - final String part = var.getVal().getPart(); - if (part != null) { - variables.add(new CrySLObject(variable, type, new CrySLSplitter(Integer.parseInt(lit.getInd()), Utils.filterQuotes(lit.getSplit())))); - } else { - variables.add(new CrySLObject(variable, type)); - } - } else { - variables.add(new CrySLObject(UNDERSCORE, NULL)); - } - } - } - return new CrySLPredicate(null, innerPred.getPred().getPredName(), variables, (innerPred.getNot() != null ? true : false), conditional); + CrySLPredicate islc = (CrySLPredicate) getPredicate(innerPred.getPred()); + return new CrySLPredicate(islc.getBaseObject(), islc.getPredName(), islc.getParameters(), islc.isNegated(), conditional); } private ISLConstraint getPredicate(Pred pred) {