From e5042c81e32e70348232e464f75552ce7ec44fcb Mon Sep 17 00:00:00 2001 From: hansen <dominik_hansen@web.de> Date: Sat, 3 Oct 2015 14:50:28 +0200 Subject: [PATCH] update build.grade --- build.gradle | 4 ++++ .../de/tlc4b/analysis/StandardMadules.java | 12 ++++-------- .../transformation/DefinitionCollector.java | 18 +++++++----------- .../SetComprehensionOptimizer.java | 16 ++++++---------- .../UnchangedVariablesFinder.java | 3 --- src/main/java/de/tlc4b/tla/TLAModule.java | 2 -- src/test/resources/basics/BBuiltInsTest.mch | 4 ++++ 7 files changed, 25 insertions(+), 34 deletions(-) diff --git a/build.gradle b/build.gradle index ae55582..aab9a6c 100644 --- a/build.gradle +++ b/build.gradle @@ -31,6 +31,7 @@ def tlatools_version = '1.0.2-SNAPSHOT' dependencies { //compile (group: 'com.microsoft', name: 'tla2tools', version: '1.4.6') + compile 'commons-cli:commons-cli:1.2' compile (group: 'de.hhu.stups', name: 'tlatools', version: tlatools_version) compile (group: 'de.hhu.stups', name: 'prologlib', version: parser_version) @@ -123,6 +124,9 @@ signing { sign configurations.archives } +javadoc { + failOnError = false +} task javadocJar(type: Jar) { classifier = 'javadoc' diff --git a/src/main/java/de/tlc4b/analysis/StandardMadules.java b/src/main/java/de/tlc4b/analysis/StandardMadules.java index 76ef31d..15f51f4 100644 --- a/src/main/java/de/tlc4b/analysis/StandardMadules.java +++ b/src/main/java/de/tlc4b/analysis/StandardMadules.java @@ -4,7 +4,6 @@ import java.util.ArrayList; import java.util.HashSet; import java.util.Set; -import de.tlc4b.prettyprint.TLAPrinter; public final class StandardMadules { @@ -199,8 +198,8 @@ public final class StandardMadules { public static final String FINITE_SUBSETS = "Fin"; public static final String FINITE_1_SUBSETS = "Fin1"; public static final String B_POWER_Of = "BPowerOf"; - public static final String B_MODULO = "BModulo"; - public static final String B_DIVISION = "BDivision"; + public static final String B_MODULO = "BModulo"; + public static final String B_DIVISION = "BDivision"; public static final String GENERAL_SUMMATION = "Sigma"; public static final String GENERAL_PRODUCT = "Pi"; @@ -234,7 +233,7 @@ public final class StandardMadules { return Relations.contains(name); } - /** + /* * External Functions * * All external functions must be defined in the standard module @@ -244,8 +243,6 @@ public final class StandardMadules { * ((STRING*STRING) --> (INTEGER<->STRING));) is not mandatory. * * The B definitions will be ignored in the {@link TLAPrinter}. - * - * */ public static final String EXTERNAL_printf = "printf"; @@ -269,8 +266,7 @@ public final class StandardMadules { } public static boolean isAbstractConstant(String name) { - if (name.equals(SORT_SET) - || name.equals(DECIMAL_TO_INT)) { + if (name.equals(SORT_SET) || name.equals(DECIMAL_TO_INT)) { return true; } else { return false; diff --git a/src/main/java/de/tlc4b/analysis/transformation/DefinitionCollector.java b/src/main/java/de/tlc4b/analysis/transformation/DefinitionCollector.java index 068edbc..d772860 100644 --- a/src/main/java/de/tlc4b/analysis/transformation/DefinitionCollector.java +++ b/src/main/java/de/tlc4b/analysis/transformation/DefinitionCollector.java @@ -17,35 +17,32 @@ import de.be4.classicalb.core.parser.node.PDefinition; import de.be4.classicalb.core.parser.node.Start; /** - * This class only collects all Definitions of a Machine. Definitions of other files which are included are not contained. - * - * @author Dominik Hansen <Dominik.Hansen at hhu.de> - * + * This class only collects all Definitions of a Machine. Definitions of other + * files which are included are not contained. */ - public class DefinitionCollector extends DepthFirstAdapter { private Hashtable<String, PDefinition> definitionsTable; private ADefinitionsMachineClause definitionsMachineClause; - public Hashtable<String, PDefinition> getDefinitions(){ + public Hashtable<String, PDefinition> getDefinitions() { return new Hashtable<String, PDefinition>(definitionsTable); } - public ADefinitionsMachineClause getDefinitionsMachineClause(){ + + public ADefinitionsMachineClause getDefinitionsMachineClause() { return this.definitionsMachineClause; } - + public DefinitionCollector(Start tree) { definitionsTable = new Hashtable<String, PDefinition>(); tree.apply(this); } - + @Override public void inADefinitionsMachineClause(ADefinitionsMachineClause node) { this.definitionsMachineClause = node; } - @Override public void caseAPredicateDefinitionDefinition( @@ -86,7 +83,6 @@ public class DefinitionCollector extends DepthFirstAdapter { public void caseAPropertiesMachineClause(APropertiesMachineClause node) { } - @Override public void caseAInitialisationMachineClause( AInitialisationMachineClause node) { diff --git a/src/main/java/de/tlc4b/analysis/transformation/SetComprehensionOptimizer.java b/src/main/java/de/tlc4b/analysis/transformation/SetComprehensionOptimizer.java index 2aa937b..7424d46 100644 --- a/src/main/java/de/tlc4b/analysis/transformation/SetComprehensionOptimizer.java +++ b/src/main/java/de/tlc4b/analysis/transformation/SetComprehensionOptimizer.java @@ -21,23 +21,19 @@ import de.be4.classicalb.core.parser.node.PExpression; import de.be4.classicalb.core.parser.node.PPredicate; import de.be4.classicalb.core.parser.node.Start; -/** +/* * This class performs an AST transformation on set comprehension nodes. For * example the expression {a,b| a = b & b : 1..10} will be replaced by the * Event-B set comprehension {b. b : 1..10 | b |-> b}. Moreover, if the parent * of a set comprehension is a domain expression, this will also be used for the * optimization, e.g. {a,b| a = b + 1 & b : 1..10} will be replaced by {b. b : * 1..10 | b + 1} - * - * @author hansen - * */ public class SetComprehensionOptimizer extends DepthFirstAdapter { /** * The method called by the translator. - * - * @param start + * @param start start node of abstract syntax tree */ public static void optimizeSetComprehensions(Start start) { SetComprehensionOptimizer optimizer = new SetComprehensionOptimizer(); @@ -166,8 +162,8 @@ public class SetComprehensionOptimizer extends DepthFirstAdapter { if (node instanceof ADomainExpression) { ArrayList<ADomainExpression> domExprList = collectParentDomainExpression(node .parent()); - domExprList.add(0, (ADomainExpression) node); // prepend the - // node + // prepend the node + domExprList.add(0, (ADomainExpression) node); return domExprList; } else { return new ArrayList<ADomainExpression>(); @@ -289,11 +285,11 @@ public class SetComprehensionOptimizer extends DepthFirstAdapter { } } } - + @Override public void caseAIdentifierExpression(AIdentifierExpression node) { String name = Utils.getIdentifierAsString(node.getIdentifier()); - //todo the name is not a unique of the node + // todo the name is not a unique of the node PExpression value = values.get(name); if (value != null) { node.replaceBy((PExpression) value.clone()); diff --git a/src/main/java/de/tlc4b/analysis/unchangedvariables/UnchangedVariablesFinder.java b/src/main/java/de/tlc4b/analysis/unchangedvariables/UnchangedVariablesFinder.java index 0fe4427..3713b67 100644 --- a/src/main/java/de/tlc4b/analysis/unchangedvariables/UnchangedVariablesFinder.java +++ b/src/main/java/de/tlc4b/analysis/unchangedvariables/UnchangedVariablesFinder.java @@ -36,9 +36,6 @@ import de.tlc4b.exceptions.SubstitutionException; * assignments for each node inside a operation body. Missing variables * assignments correspond to unchanged variables in TLA+. B definitions or the * initialisation are not visited by this class. - * - * @author Dominik Hansen <Dominik.Hansen at hhu.de> - * */ public class UnchangedVariablesFinder extends DepthFirstAdapter { diff --git a/src/main/java/de/tlc4b/tla/TLAModule.java b/src/main/java/de/tlc4b/tla/TLAModule.java index a13cd76..d373d37 100644 --- a/src/main/java/de/tlc4b/tla/TLAModule.java +++ b/src/main/java/de/tlc4b/tla/TLAModule.java @@ -4,8 +4,6 @@ import java.util.ArrayList; import de.be4.classicalb.core.parser.node.Node; import de.be4.classicalb.core.parser.node.PDefinition; import de.be4.classicalb.core.parser.node.POperation; -import de.tlc4b.analysis.DefinitionsSorter; -import de.tlc4b.analysis.MachineContext; public class TLAModule { diff --git a/src/test/resources/basics/BBuiltInsTest.mch b/src/test/resources/basics/BBuiltInsTest.mch index 5fc7a79..629ba6b 100644 --- a/src/test/resources/basics/BBuiltInsTest.mch +++ b/src/test/resources/basics/BBuiltInsTest.mch @@ -34,6 +34,10 @@ PROPERTIES & FIN1({1}) = {{1}} & FIN1({1,2}) = {{1}, {2}, {1,2}} +/* generalised intersection over sets of sets */ +& inter({{1},{1,2},{1,3}}) = {1} +& inter({{1},{2},{1,3}}) = {} + /* Quantified intersection */ & INTER(z).(z: {1,2}| {z}) = {} & INTER(x1).(x1: {2,4}| {y1 | y1 : 0..10 & y1 <= x1}) = {0,1,2} -- GitLab