From 74f25b39d006a9cfee40d8286ae749e275d461d8 Mon Sep 17 00:00:00 2001 From: Jan Gruteser <jan.gruteser@hhu.de> Date: Fri, 3 Jan 2025 10:35:08 +0100 Subject: [PATCH] minor simplifications --- .../de/tla2b/translation/BMacroHandler.java | 66 ++++++------------- 1 file changed, 21 insertions(+), 45 deletions(-) diff --git a/src/main/java/de/tla2b/translation/BMacroHandler.java b/src/main/java/de/tla2b/translation/BMacroHandler.java index a65d897..5834913 100644 --- a/src/main/java/de/tla2b/translation/BMacroHandler.java +++ b/src/main/java/de/tla2b/translation/BMacroHandler.java @@ -6,44 +6,34 @@ import de.tla2b.config.ConfigfileEvaluator; import tla2sany.semantic.*; import java.util.*; +import java.util.stream.Collectors; public class BMacroHandler extends AbstractASTVisitor { - private final Hashtable<FormalParamNode, String> renamingTable = new Hashtable<>(); + private final Map<FormalParamNode, String> renamingTable = new HashMap<>(); public BMacroHandler(SpecAnalyser specAnalyser, ConfigfileEvaluator conEval) { ModuleNode moduleNode = specAnalyser.getModuleNode(); - ArrayList<OpDefNode> bDefs = new ArrayList<>(); - for (int i = 0; i < moduleNode.getOpDefs().length; i++) { - OpDefNode def = moduleNode.getOpDefs()[i]; - if (specAnalyser.getUsedDefinitions().contains(def)) { - if (conEval != null - && conEval.getConstantOverrides() - .containsValue(def)) { - continue; - } - bDefs.add(def); - } - } - + List<OpDefNode> bDefs = Arrays.stream(moduleNode.getOpDefs()) + .filter(def -> specAnalyser.getUsedDefinitions().contains(def)) + .filter(def -> conEval == null || !conEval.getConstantOverrides().containsValue(def)) + .collect(Collectors.toList()); for (OpDefNode opDefNode : bDefs) { visitDefinition(opDefNode); } - visitAssumptions(moduleNode.getAssumptions()); } public BMacroHandler() { } - private HashSet<FormalParamNode> definitionParameters; - private HashSet<FormalParamNode> localVariables; - private final Hashtable<FormalParamNode, Set<FormalParamNode>> parameterContext = new Hashtable<>(); + private Set<FormalParamNode> definitionParameters; + private Set<FormalParamNode> localVariables; + private final Map<FormalParamNode, Set<FormalParamNode>> parameterContext = new HashMap<>(); @Override public void visitDefinition(OpDefNode def) { - definitionParameters = new HashSet<>(); - definitionParameters.addAll(Arrays.asList(def.getParams())); + definitionParameters = new HashSet<>(Arrays.asList(def.getParams())); for (FormalParamNode param : definitionParameters) { parameterContext.put(param, new HashSet<>()); } @@ -64,7 +54,6 @@ public class BMacroHandler extends AbstractASTVisitor { definitionParameters = null; localVariables = null; - } @Override @@ -77,50 +66,37 @@ public class BMacroHandler extends AbstractASTVisitor { case OPCODE_bf: // \A x \in S : P case OPCODE_bc: // CHOOSE x \in S: P case OPCODE_sso: // $SubsetOf Represents {x \in S : P} - case OPCODE_soa: // $SetOfAll Represents {e : p1 \in S, p2,p3 \in S2} - { - - FormalParamNode[][] params = n.getBdedQuantSymbolLists(); - HashSet<FormalParamNode> set = new HashSet<>(); - for (FormalParamNode[] param : params) { + case OPCODE_soa: { // $SetOfAll Represents {e : p1 \in S, p2,p3 \in S2} + Set<FormalParamNode> set = new HashSet<>(); + for (FormalParamNode[] param : n.getBdedQuantSymbolLists()) { Collections.addAll(set, param); } localVariables.addAll(set); - ExprNode[] in = n.getBdedQuantBounds(); - for (ExprNode exprNode : in) { + for (ExprNode exprNode : n.getBdedQuantBounds()) { // in visitExprNode(exprNode); } - ExprOrOpArgNode[] arguments = n.getArgs(); - for (ExprOrOpArgNode exprOrOpArgNode : arguments) { - visitExprOrOpArgNode(exprOrOpArgNode); + for (ExprOrOpArgNode argument : n.getArgs()) { + visitExprOrOpArgNode(argument); } localVariables.removeAll(set); return; } - default: { + default: super.visitBuiltInNode(n); - } - } - } private Set<String> getStringSet(Set<FormalParamNode> set) { - HashSet<String> stringSet = new HashSet<>(); - for (FormalParamNode formalParamNode : set) { - stringSet.add(formalParamNode.getName().toString()); - } - return stringSet; + return set.stream().map(s -> s.getName().toString()).collect(Collectors.toSet()); } - private HashSet<FormalParamNode> illegalParams; + private Set<FormalParamNode> illegalParams; private void addToIllegalParams(Set<FormalParamNode> set) { if (illegalParams == null) { - illegalParams = new HashSet<>(set); - } else { - illegalParams.addAll(set); + illegalParams = new HashSet<>(); } + illegalParams.addAll(set); } private Set<FormalParamNode> getContextOfParam(FormalParamNode param) { -- GitLab