From 01ced8c9d9be6a333911a508cfbe278f5ef17700 Mon Sep 17 00:00:00 2001 From: Jan Gruteser <jan.gruteser@hhu.de> Date: Thu, 23 Jan 2025 20:26:52 +0100 Subject: [PATCH] delete duplicate DefinitionCollector --- .../transformation/DefinitionCollector.java | 96 ------------------- .../transformation/DefinitionsEliminator.java | 14 +-- 2 files changed, 8 insertions(+), 102 deletions(-) delete mode 100644 src/main/java/de/tlc4b/analysis/transformation/DefinitionCollector.java diff --git a/src/main/java/de/tlc4b/analysis/transformation/DefinitionCollector.java b/src/main/java/de/tlc4b/analysis/transformation/DefinitionCollector.java deleted file mode 100644 index ee05bf4..0000000 --- a/src/main/java/de/tlc4b/analysis/transformation/DefinitionCollector.java +++ /dev/null @@ -1,96 +0,0 @@ -package de.tlc4b.analysis.transformation; - -import java.util.Hashtable; - -import de.be4.classicalb.core.parser.analysis.DepthFirstAdapter; -import de.be4.classicalb.core.parser.node.AConstraintsMachineClause; -import de.be4.classicalb.core.parser.node.ADefinitionsMachineClause; -import de.be4.classicalb.core.parser.node.AExpressionDefinitionDefinition; -import de.be4.classicalb.core.parser.node.AInitialisationMachineClause; -import de.be4.classicalb.core.parser.node.AInvariantMachineClause; -import de.be4.classicalb.core.parser.node.ALocalOperationsMachineClause; -import de.be4.classicalb.core.parser.node.AOperationsMachineClause; -import de.be4.classicalb.core.parser.node.APredicateDefinitionDefinition; -import de.be4.classicalb.core.parser.node.APropertiesMachineClause; -import de.be4.classicalb.core.parser.node.ASubstitutionDefinitionDefinition; -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. - */ - -public class DefinitionCollector extends DepthFirstAdapter { - - private final Hashtable<String, PDefinition> definitionsTable; - private ADefinitionsMachineClause definitionsMachineClause; - - public Hashtable<String, PDefinition> getDefinitions() { - return new Hashtable<>(definitionsTable); - } - - public ADefinitionsMachineClause getDefinitionsMachineClause() { - return this.definitionsMachineClause; - } - - public DefinitionCollector(Start tree) { - definitionsTable = new Hashtable<>(); - tree.apply(this); - } - - @Override - public void inADefinitionsMachineClause(ADefinitionsMachineClause node) { - this.definitionsMachineClause = node; - } - - @Override - public void caseAPredicateDefinitionDefinition( - APredicateDefinitionDefinition node) { - definitionsTable.put(node.getName().getText(), node); - } - - @Override - public void caseASubstitutionDefinitionDefinition( - ASubstitutionDefinitionDefinition node) { - definitionsTable.put(node.getName().getText(), node); - } - - @Override - public void caseAExpressionDefinitionDefinition( - AExpressionDefinitionDefinition node) { - definitionsTable.put(node.getName().getText(), node); - } - - /*************************************************************************** - * exclude large sections of a machine without machine references by doing - * nothing - */ - - @Override - public void caseAConstraintsMachineClause(AConstraintsMachineClause node) { - } - - @Override - public void caseAInvariantMachineClause(AInvariantMachineClause node) { - } - - @Override - public void caseAOperationsMachineClause(AOperationsMachineClause node) { - } - - @Override - public void caseAPropertiesMachineClause(APropertiesMachineClause node) { - } - - @Override - public void caseAInitialisationMachineClause( - AInitialisationMachineClause node) { - } - - @Override - public void caseALocalOperationsMachineClause( - ALocalOperationsMachineClause node) { - } - -} diff --git a/src/main/java/de/tlc4b/analysis/transformation/DefinitionsEliminator.java b/src/main/java/de/tlc4b/analysis/transformation/DefinitionsEliminator.java index 4837b2b..0c6cc93 100644 --- a/src/main/java/de/tlc4b/analysis/transformation/DefinitionsEliminator.java +++ b/src/main/java/de/tlc4b/analysis/transformation/DefinitionsEliminator.java @@ -4,7 +4,10 @@ import java.util.ArrayList; import java.util.Hashtable; import java.util.List; +import de.be4.classicalb.core.parser.Definitions; +import de.be4.classicalb.core.parser.IDefinitions; import de.be4.classicalb.core.parser.analysis.DepthFirstAdapter; +import de.be4.classicalb.core.parser.analysis.checking.DefinitionCollector; import de.be4.classicalb.core.parser.node.AAbstractMachineParseUnit; import de.be4.classicalb.core.parser.node.ADefinitionExpression; import de.be4.classicalb.core.parser.node.ADefinitionPredicate; @@ -34,7 +37,7 @@ import de.tlc4b.analysis.StandardModules; */ public class DefinitionsEliminator extends DepthFirstAdapter { - private final Hashtable<String, PDefinition> definitionsTable; + private final IDefinitions definitions = new Definitions(); private final ArrayList<Hashtable<String, PExpression>> contextStack; public static void eliminateDefinitions(Start start){ @@ -42,8 +45,7 @@ public class DefinitionsEliminator extends DepthFirstAdapter { } private DefinitionsEliminator(Start node) { - DefinitionCollector collector = new DefinitionCollector(node); - definitionsTable = collector.getDefinitions(); + new DefinitionCollector(definitions).collectDefinitions(node); contextStack = new ArrayList<>(); node.apply(this); } @@ -113,7 +115,7 @@ public class DefinitionsEliminator extends DepthFirstAdapter { @Override public void caseADefinitionSubstitution(ADefinitionSubstitution node) { String name = node.getDefLiteral().getText(); - PDefinition def = definitionsTable.get(name); + PDefinition def = definitions.getDefinition(name); ASubstitutionDefinitionDefinition clone = (ASubstitutionDefinitionDefinition) def.clone(); Hashtable<String, PExpression> context = new Hashtable<>(); @@ -144,7 +146,7 @@ public class DefinitionsEliminator extends DepthFirstAdapter { return; } - PDefinition def = definitionsTable.get(name); + PDefinition def = definitions.getDefinition(name); AExpressionDefinitionDefinition clone = (AExpressionDefinitionDefinition) def.clone(); Hashtable<String, PExpression> context = new Hashtable<>(); @@ -164,7 +166,7 @@ public class DefinitionsEliminator extends DepthFirstAdapter { @Override public void caseADefinitionPredicate(ADefinitionPredicate node) { String name = node.getDefLiteral().getText(); - PDefinition def = definitionsTable.get(name); + PDefinition def = definitions.getDefinition(name); ArrayList<PExpression> arguments = new ArrayList<>(node.getParameters()); if (StandardModules.isKeywordInModuleExternalFunctions(name)) { -- GitLab