From 9af8cc0af9f9812c852d6fecf72ff3f5b9e304c3 Mon Sep 17 00:00:00 2001 From: Jan Gruteser <jan.gruteser@hhu.de> Date: Fri, 3 Jan 2025 10:42:01 +0100 Subject: [PATCH] minor simplifications --- .../translation/RecursiveFunctionHandler.java | 39 +++++++------------ src/main/java/de/tla2bAst/BAstCreator.java | 9 ++--- 2 files changed, 18 insertions(+), 30 deletions(-) diff --git a/src/main/java/de/tla2b/translation/RecursiveFunctionHandler.java b/src/main/java/de/tla2b/translation/RecursiveFunctionHandler.java index d659417..10b80b0 100644 --- a/src/main/java/de/tla2b/translation/RecursiveFunctionHandler.java +++ b/src/main/java/de/tla2b/translation/RecursiveFunctionHandler.java @@ -4,19 +4,16 @@ import de.tla2b.analysis.AbstractASTVisitor; import de.tla2b.analysis.SpecAnalyser; import tla2sany.semantic.*; -import java.util.ArrayList; -import java.util.Collections; -import java.util.HashSet; -import java.util.Hashtable; +import java.util.*; public class RecursiveFunctionHandler extends AbstractASTVisitor { - private ArrayList<FormalParamNode> paramList; - private ArrayList<FormalParamNode> ignoreParamList; - private ArrayList<SymbolNode> externParams; + private List<FormalParamNode> paramList; + private List<FormalParamNode> ignoreParamList; + private List<SymbolNode> externParams; - private final HashSet<OpApplNode> recursiveFunctions = new HashSet<>(); - private final Hashtable<SemanticNode, ArrayList<SymbolNode>> additionalParamsTable = new Hashtable<>(); + private final Set<OpApplNode> recursiveFunctions = new HashSet<>(); + private final Map<SemanticNode, List<SymbolNode>> additionalParamsTable = new HashMap<>(); public RecursiveFunctionHandler(SpecAnalyser specAnalyser) { for (OpDefNode recFunc : specAnalyser.getRecursiveFunctions()) { @@ -51,7 +48,7 @@ public class RecursiveFunctionHandler extends AbstractASTVisitor { externParams.add(n.getOperator()); } - public ArrayList<SymbolNode> getAdditionalParams(SemanticNode n) { + public List<SymbolNode> getAdditionalParams(SemanticNode n) { return additionalParamsTable.get(n); } @@ -69,30 +66,22 @@ public class RecursiveFunctionHandler 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); } ignoreParamList.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); } return; } - default: { + default: super.visitBuiltInNode(n); - } - } - } - } diff --git a/src/main/java/de/tla2bAst/BAstCreator.java b/src/main/java/de/tla2bAst/BAstCreator.java index ef40219..e4bdced 100644 --- a/src/main/java/de/tla2bAst/BAstCreator.java +++ b/src/main/java/de/tla2bAst/BAstCreator.java @@ -672,11 +672,11 @@ public class BAstCreator extends BuiltInOPs implements TranslationGlobals, BBuil } if (specAnalyser.getRecursiveFunctions().contains(def)) { - ArrayList<SymbolNode> list = recursiveFunctionHandler.getAdditionalParams(def); + List<SymbolNode> list = recursiveFunctionHandler.getAdditionalParams(def); if (!list.isEmpty()) { AFunctionExpression call = new AFunctionExpression(); call.setIdentifier(createIdentifierNode(def)); - ArrayList<PExpression> params = new ArrayList<>(); + List<PExpression> params = new ArrayList<>(); for (SymbolNode symbolNode : list) { params.add(createIdentifierNode(symbolNode)); } @@ -1241,11 +1241,10 @@ public class BAstCreator extends BuiltInOPs implements TranslationGlobals, BBuil lambda.setExpression(visitExprOrOpArgNodeExpression(n.getArgs()[0])); if (recursiveFunctionHandler.isRecursiveFunction(n)) { - - ArrayList<SymbolNode> externParams = recursiveFunctionHandler.getAdditionalParams(n); + List<SymbolNode> externParams = recursiveFunctionHandler.getAdditionalParams(n); if (!externParams.isEmpty()) { ALambdaExpression lambda2 = new ALambdaExpression(); - ArrayList<PExpression> shiftedParams = new ArrayList<>(); + List<PExpression> shiftedParams = new ArrayList<>(); List<PPredicate> predList2 = new ArrayList<>(); for (SymbolNode p : externParams) { shiftedParams.add(createIdentifierNode(p)); -- GitLab