diff --git a/build.gradle b/build.gradle index 62c0493d4836901c956b61b34d55f129dfbb70f2..f5663412c660299295244666a11bd66a4c0eadb8 100644 --- a/build.gradle +++ b/build.gradle @@ -28,7 +28,14 @@ configurations.all { resolutionStrategy.cacheChangingModulesFor 0, 'seconds' } -def parser_version = '2.7.1-SNAPSHOT' +def parser_version +if (project.version.endsWith("-SNAPSHOT")) { + parser_version = '2.9.7-SNAPSHOT' +} +else { + parser_version = '2.9.6' +} + def tlatools_version = '1.0.2' dependencies { @@ -85,12 +92,14 @@ task createJar(type: Jar, dependsOn: build){ } -task tla2b(dependsOn: createJar) << { - copy { - from('build/libs/') - into('.') - include('TLA2B.jar') - } +task tla2b(dependsOn: createJar) { + doLast{ + copy { + from('build/libs/') + into('.') + include('TLA2B.jar') + } + } } if (project.hasProperty('ossrhUsername') && project.hasProperty('ossrhPassword')) { diff --git a/src/main/java/de/tla2b/output/Renamer.java b/src/main/java/de/tla2b/output/Renamer.java index 87a7ddfe13d1fc1d48499d240e8391058c51fe48..1e768d72b0bbd9e5b53b0dcffbc04cf8fda14a0d 100644 --- a/src/main/java/de/tla2b/output/Renamer.java +++ b/src/main/java/de/tla2b/output/Renamer.java @@ -1,7 +1,7 @@ package de.tla2b.output; +import java.util.HashMap; import java.util.HashSet; -import java.util.Hashtable; import java.util.Set; import de.be4.classicalb.core.parser.util.Utils; @@ -13,17 +13,17 @@ import de.be4.classicalb.core.parser.node.TIdentifierLiteral; public class Renamer extends DepthFirstAdapter { - private final java.util.Hashtable<Node, String> namesTables; + private final HashMap<Node, String> namesTables; private final Set<String> globalNames; public Renamer(Start start) { - this.namesTables = new Hashtable<Node, String>(); - this.globalNames = new HashSet<String>(); + this.namesTables = new HashMap<>(); + this.globalNames = new HashSet<>(); start.apply(this); } - private final static Set<String> KEYWORDS = new HashSet<String>(); + private final static Set<String> KEYWORDS = new HashSet<>(); static { KEYWORDS.add("seq"); KEYWORDS.add("left"); @@ -80,29 +80,28 @@ public class Renamer extends DepthFirstAdapter { @Override public void caseAIdentifierExpression(AIdentifierExpression node) { - String name = Utils.getIdentifierAsString(node.getIdentifier()); + String name = Utils.getAIdentifierAsString(node); String newName = incName(name, new HashSet<String>()); namesTables.put(node, newName); } @Override - public void caseTIdentifierLiteral(TIdentifierLiteral node){ + public void caseTIdentifierLiteral(TIdentifierLiteral node) { String name = node.getText(); String newName = incName(name, new HashSet<String>()); namesTables.put(node, newName); } - + private Boolean existingName(String name) { - if (globalNames.contains(name) || KEYWORDS.contains(name)) { - return true; - } else - return false; + return globalNames.contains(name) || KEYWORDS.contains(name); } private String incName(String name, Set<String> tempSet) { String res = name; - for (int i = 1; existingName(res) || tempSet.contains(res); i++) { + int i = 1; + while (existingName(res) || tempSet.contains(res)) { res = name + "_" + i; + i++; } return res; } diff --git a/src/main/java/de/tla2bAst/BAstCreator.java b/src/main/java/de/tla2bAst/BAstCreator.java index a0d7b0ac2fb6aeada1f9fb7b31fb389289a3524d..1286ddaa992c1f76336bb66e374bac034a848ae6 100644 --- a/src/main/java/de/tla2bAst/BAstCreator.java +++ b/src/main/java/de/tla2bAst/BAstCreator.java @@ -34,8 +34,6 @@ import tlc2.value.StringValue; import tlc2.value.Value; import tlc2.value.ValueConstants; import de.be4.classicalb.core.parser.Definitions; -import de.be4.classicalb.core.parser.exceptions.BException; -import de.be4.classicalb.core.parser.exceptions.CheckException; import de.be4.classicalb.core.parser.node.*; import de.hhu.stups.sablecc.patch.PositionedNode; import de.hhu.stups.sablecc.patch.SourcePosition; @@ -204,7 +202,7 @@ public class BAstCreator extends BuiltInOPs printed.get(i).id = i + 1; eSet.setIdentifier(createTIdentifierLiteral("ENUM" + (i + 1))); List<PExpression> list = new ArrayList<PExpression>(); - for (Iterator< String>iterator = printed.get(i).modelvalues.iterator(); iterator.hasNext();) { + for (Iterator<String> iterator = printed.get(i).modelvalues.iterator(); iterator.hasNext();) { list.add(createIdentifierNode(iterator.next())); } eSet.setElements(list); @@ -262,24 +260,19 @@ public class BAstCreator extends BuiltInOPs } - if (defs.size() > 0) { + if (!defs.isEmpty()) { ADefinitionsMachineClause defClause = new ADefinitionsMachineClause(); defClause.setDefinitions(defs); machineClauseList.add(defClause); - try { - for (PDefinition def : defs) { - if (def instanceof AExpressionDefinitionDefinition) { - bDefinitions.addDefinition((AExpressionDefinitionDefinition) def, Definitions.Type.Expression); - } else if (def instanceof APredicateDefinitionDefinition) { - bDefinitions.addDefinition((APredicateDefinitionDefinition) def, Definitions.Type.Predicate); - } else { - bDefinitions.addDefinition((ASubstitutionDefinitionDefinition) def, - Definitions.Type.Substitution); - } + for (PDefinition def : defs) { + if (def instanceof AExpressionDefinitionDefinition) { + bDefinitions.addDefinition((AExpressionDefinitionDefinition) def, Definitions.Type.Expression); + } else if (def instanceof APredicateDefinitionDefinition) { + bDefinitions.addDefinition((APredicateDefinitionDefinition) def, Definitions.Type.Predicate); + } else { + bDefinitions.addDefinition((ASubstitutionDefinitionDefinition) def, Definitions.Type.Substitution); } - } catch (BException | CheckException e) { - throw new AssertionError(e); } }