From 8eccaf54eb6f30bea1ad9b25b2ace0cabbb3fabb Mon Sep 17 00:00:00 2001 From: Daniel Plagge <plagge@cs.uni-duesseldorf.de> Date: Fri, 8 Mar 2013 11:38:40 +0100 Subject: [PATCH] Added a flag that shows if a theory was used --- .../translator/internal/TranslationVisitor.java | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/de.prob.core/src/de/prob/eventb/translator/internal/TranslationVisitor.java b/de.prob.core/src/de/prob/eventb/translator/internal/TranslationVisitor.java index 29021e9d..6c87173e 100644 --- a/de.prob.core/src/de/prob/eventb/translator/internal/TranslationVisitor.java +++ b/de.prob.core/src/de/prob/eventb/translator/internal/TranslationVisitor.java @@ -49,6 +49,8 @@ public class TranslationVisitor implements ISimpleVisitor { private LookupStack<PSubstitution> substitutions = new LookupStack<PSubstitution>(); private LookupStack<String> boundVariables = new LookupStack<String>(); + private boolean usesTheories = false; + public void visitAssociativeExpression( final AssociativeExpression expression) { // BUNION, BINTER, BCOMP, FCOMP, OVR, PLUS, MUL @@ -602,6 +604,7 @@ public class TranslationVisitor implements ISimpleVisitor { .getChildPredicates()); expressions.push(new AExtendedExprExpression(new TIdentifierLiteral( symbol), childExprs, childPreds)); + usesTheories = true; } @Override @@ -613,6 +616,7 @@ public class TranslationVisitor implements ISimpleVisitor { .getChildPredicates()); predicates.push(new AExtendedPredPredicate(new TIdentifierLiteral( symbol), childExprs, childPreds)); + usesTheories = true; } private List<PExpression> getSubExpressions(final Formula<?>[] children) { @@ -701,14 +705,20 @@ public class TranslationVisitor implements ISimpleVisitor { } } - public static void checkNewImplementation(Predicate p, PPredicate predicate) { + public static boolean checkNewImplementation(Formula<?> p, + Node oldImplementation) { TranslationVisitor visitor = new TranslationVisitor(); p.accept(visitor); - final String expected = predicate.toString(); + final String expected = oldImplementation.toString(); final String actual = visitor.getPredicate().toString(); if (!expected.equals(actual)) { throw new AssertionError("Expected:\n" + expected + "\n but was:\n" + actual); } + return visitor.usesTheories; + } + + public boolean usesTheories() { + return usesTheories; } } -- GitLab