From 16a9b534adec2c53b50f92a43c1623918b1c59c0 Mon Sep 17 00:00:00 2001 From: Kristóf Marussy Date: Thu, 7 Mar 2024 22:10:42 +0100 Subject: refactor: move terms and DNF into logic subproject --- .../language/semantics/ModelInitializer.java | 74 ++++++++++++---------- .../language/semantics/SolutionSerializer.java | 2 +- .../language/semantics/internal/DecisionTree.java | 2 +- .../semantics/internal/DecisionTreeCursor.java | 2 +- .../semantics/internal/DecisionTreeNode.java | 2 +- .../semantics/internal/DecisionTreeValue.java | 2 +- .../semantics/internal/IntermediateNode.java | 2 +- .../language/semantics/internal/MutableSeed.java | 2 +- .../semantics/internal/NullaryMutableSeed.java | 2 +- .../language/semantics/internal/TerminalNode.java | 2 +- 10 files changed, 50 insertions(+), 42 deletions(-) (limited to 'subprojects/language-semantics/src/main') diff --git a/subprojects/language-semantics/src/main/java/tools/refinery/language/semantics/ModelInitializer.java b/subprojects/language-semantics/src/main/java/tools/refinery/language/semantics/ModelInitializer.java index 2a623cf1..ccfb630f 100644 --- a/subprojects/language-semantics/src/main/java/tools/refinery/language/semantics/ModelInitializer.java +++ b/subprojects/language-semantics/src/main/java/tools/refinery/language/semantics/ModelInitializer.java @@ -13,15 +13,19 @@ import tools.refinery.language.scoping.imports.ImportCollector; import tools.refinery.language.semantics.internal.MutableSeed; import tools.refinery.language.utils.BuiltinSymbols; import tools.refinery.language.utils.ProblemUtil; +import tools.refinery.logic.Constraint; +import tools.refinery.logic.dnf.InvalidClauseException; +import tools.refinery.logic.dnf.Query; +import tools.refinery.logic.dnf.RelationalQuery; +import tools.refinery.logic.literal.*; +import tools.refinery.logic.term.NodeVariable; +import tools.refinery.logic.term.Variable; +import tools.refinery.logic.term.cardinalityinterval.CardinalityInterval; +import tools.refinery.logic.term.cardinalityinterval.CardinalityIntervals; +import tools.refinery.logic.term.truthvalue.TruthValue; +import tools.refinery.logic.term.uppercardinality.UpperCardinalities; import tools.refinery.store.dse.propagation.PropagationBuilder; import tools.refinery.store.model.ModelStoreBuilder; -import tools.refinery.store.query.Constraint; -import tools.refinery.store.query.dnf.InvalidClauseException; -import tools.refinery.store.query.dnf.Query; -import tools.refinery.store.query.dnf.RelationalQuery; -import tools.refinery.store.query.literal.*; -import tools.refinery.store.query.term.NodeVariable; -import tools.refinery.store.query.term.Variable; import tools.refinery.store.reasoning.ReasoningAdapter; import tools.refinery.store.reasoning.representation.PartialRelation; import tools.refinery.store.reasoning.scope.ScopePropagator; @@ -38,10 +42,6 @@ import tools.refinery.store.reasoning.translator.multiplicity.ConstrainedMultipl import tools.refinery.store.reasoning.translator.multiplicity.Multiplicity; import tools.refinery.store.reasoning.translator.multiplicity.UnconstrainedMultiplicity; import tools.refinery.store.reasoning.translator.predicate.PredicateTranslator; -import tools.refinery.store.representation.TruthValue; -import tools.refinery.store.representation.cardinality.CardinalityInterval; -import tools.refinery.store.representation.cardinality.CardinalityIntervals; -import tools.refinery.store.representation.cardinality.UpperCardinalities; import tools.refinery.store.tuple.Tuple; import java.util.*; @@ -204,20 +204,7 @@ public class ModelInitializer { private void collectNodes() { for (var importedProblem : importedProblems) { for (var statement : importedProblem.getStatements()) { - if (statement instanceof NodeDeclaration nodeDeclaration) { - for (var node : nodeDeclaration.getNodes()) { - collectNode(node); - } - } else if (statement instanceof ClassDeclaration classDeclaration) { - var newNode = classDeclaration.getNewNode(); - if (newNode != null) { - collectNode(newNode); - } - } else if (statement instanceof EnumDeclaration enumDeclaration) { - for (var literal : enumDeclaration.getLiterals()) { - collectNode(literal); - } - } + collectNodes(statement); } } for (var node : problem.getNodes()) { @@ -225,6 +212,23 @@ public class ModelInitializer { } } + private void collectNodes(Statement statement) { + if (statement instanceof NodeDeclaration nodeDeclaration) { + for (var node : nodeDeclaration.getNodes()) { + collectNode(node); + } + } else if (statement instanceof ClassDeclaration classDeclaration) { + var newNode = classDeclaration.getNewNode(); + if (newNode != null) { + collectNode(newNode); + } + } else if (statement instanceof EnumDeclaration enumDeclaration) { + for (var literal : enumDeclaration.getLiterals()) { + collectNode(literal); + } + } + } + private void collectNode(Node node) { problemTrace.collectNode(node); } @@ -725,14 +729,18 @@ public class ModelInitializer { private void collectScopes() { for (var importedProblem : importedProblems) { for (var statement : importedProblem.getStatements()) { - if (statement instanceof ScopeDeclaration scopeDeclaration) { - for (var typeScope : scopeDeclaration.getTypeScopes()) { - if (typeScope.isIncrement()) { - collectTypeScopeIncrement(typeScope); - } else { - collectTypeScope(typeScope); - } - } + collectScopes(statement); + } + } + } + + private void collectScopes(Statement statement) { + if (statement instanceof ScopeDeclaration scopeDeclaration) { + for (var typeScope : scopeDeclaration.getTypeScopes()) { + if (typeScope.isIncrement()) { + collectTypeScopeIncrement(typeScope); + } else { + collectTypeScope(typeScope); } } } diff --git a/subprojects/language-semantics/src/main/java/tools/refinery/language/semantics/SolutionSerializer.java b/subprojects/language-semantics/src/main/java/tools/refinery/language/semantics/SolutionSerializer.java index 61e70bcd..f097143f 100644 --- a/subprojects/language-semantics/src/main/java/tools/refinery/language/semantics/SolutionSerializer.java +++ b/subprojects/language-semantics/src/main/java/tools/refinery/language/semantics/SolutionSerializer.java @@ -31,7 +31,7 @@ import tools.refinery.store.reasoning.literal.Concreteness; import tools.refinery.store.reasoning.representation.PartialRelation; import tools.refinery.store.reasoning.translator.typehierarchy.InferredType; import tools.refinery.store.reasoning.translator.typehierarchy.TypeHierarchyTranslator; -import tools.refinery.store.representation.TruthValue; +import tools.refinery.logic.term.truthvalue.TruthValue; import tools.refinery.store.tuple.Tuple; import java.io.ByteArrayInputStream; diff --git a/subprojects/language-semantics/src/main/java/tools/refinery/language/semantics/internal/DecisionTree.java b/subprojects/language-semantics/src/main/java/tools/refinery/language/semantics/internal/DecisionTree.java index 5d25f148..8aa1af28 100644 --- a/subprojects/language-semantics/src/main/java/tools/refinery/language/semantics/internal/DecisionTree.java +++ b/subprojects/language-semantics/src/main/java/tools/refinery/language/semantics/internal/DecisionTree.java @@ -7,7 +7,7 @@ package tools.refinery.language.semantics.internal; import org.eclipse.collections.api.factory.primitive.IntObjectMaps; import tools.refinery.store.map.Cursor; -import tools.refinery.store.representation.TruthValue; +import tools.refinery.logic.term.truthvalue.TruthValue; import tools.refinery.store.tuple.Tuple; class DecisionTree implements MutableSeed { diff --git a/subprojects/language-semantics/src/main/java/tools/refinery/language/semantics/internal/DecisionTreeCursor.java b/subprojects/language-semantics/src/main/java/tools/refinery/language/semantics/internal/DecisionTreeCursor.java index 71b54cbd..8b8fed36 100644 --- a/subprojects/language-semantics/src/main/java/tools/refinery/language/semantics/internal/DecisionTreeCursor.java +++ b/subprojects/language-semantics/src/main/java/tools/refinery/language/semantics/internal/DecisionTreeCursor.java @@ -6,7 +6,7 @@ package tools.refinery.language.semantics.internal; import tools.refinery.store.map.Cursor; -import tools.refinery.store.representation.TruthValue; +import tools.refinery.logic.term.truthvalue.TruthValue; import tools.refinery.store.tuple.Tuple; import java.util.ArrayDeque; diff --git a/subprojects/language-semantics/src/main/java/tools/refinery/language/semantics/internal/DecisionTreeNode.java b/subprojects/language-semantics/src/main/java/tools/refinery/language/semantics/internal/DecisionTreeNode.java index 31d6fc78..eb79e0c8 100644 --- a/subprojects/language-semantics/src/main/java/tools/refinery/language/semantics/internal/DecisionTreeNode.java +++ b/subprojects/language-semantics/src/main/java/tools/refinery/language/semantics/internal/DecisionTreeNode.java @@ -7,7 +7,7 @@ package tools.refinery.language.semantics.internal; import org.eclipse.collections.api.LazyIntIterable; import tools.refinery.store.tuple.Tuple; -import tools.refinery.store.representation.TruthValue; +import tools.refinery.logic.term.truthvalue.TruthValue; abstract class DecisionTreeNode { public DecisionTreeValue getReducedValue() { diff --git a/subprojects/language-semantics/src/main/java/tools/refinery/language/semantics/internal/DecisionTreeValue.java b/subprojects/language-semantics/src/main/java/tools/refinery/language/semantics/internal/DecisionTreeValue.java index 5053e7ac..3260ef3d 100644 --- a/subprojects/language-semantics/src/main/java/tools/refinery/language/semantics/internal/DecisionTreeValue.java +++ b/subprojects/language-semantics/src/main/java/tools/refinery/language/semantics/internal/DecisionTreeValue.java @@ -5,7 +5,7 @@ */ package tools.refinery.language.semantics.internal; -import tools.refinery.store.representation.TruthValue; +import tools.refinery.logic.term.truthvalue.TruthValue; public enum DecisionTreeValue { UNSET(null), diff --git a/subprojects/language-semantics/src/main/java/tools/refinery/language/semantics/internal/IntermediateNode.java b/subprojects/language-semantics/src/main/java/tools/refinery/language/semantics/internal/IntermediateNode.java index 2ad216ce..8942068c 100644 --- a/subprojects/language-semantics/src/main/java/tools/refinery/language/semantics/internal/IntermediateNode.java +++ b/subprojects/language-semantics/src/main/java/tools/refinery/language/semantics/internal/IntermediateNode.java @@ -10,7 +10,7 @@ import org.eclipse.collections.api.factory.primitive.IntObjectMaps; import org.eclipse.collections.api.map.primitive.MutableIntObjectMap; import org.eclipse.collections.api.tuple.primitive.IntObjectPair; import tools.refinery.store.tuple.Tuple; -import tools.refinery.store.representation.TruthValue; +import tools.refinery.logic.term.truthvalue.TruthValue; final class IntermediateNode extends DecisionTreeNode { private final MutableIntObjectMap children; diff --git a/subprojects/language-semantics/src/main/java/tools/refinery/language/semantics/internal/MutableSeed.java b/subprojects/language-semantics/src/main/java/tools/refinery/language/semantics/internal/MutableSeed.java index 693b9e1f..85611059 100644 --- a/subprojects/language-semantics/src/main/java/tools/refinery/language/semantics/internal/MutableSeed.java +++ b/subprojects/language-semantics/src/main/java/tools/refinery/language/semantics/internal/MutableSeed.java @@ -6,7 +6,7 @@ package tools.refinery.language.semantics.internal; import tools.refinery.store.reasoning.seed.Seed; -import tools.refinery.store.representation.TruthValue; +import tools.refinery.logic.term.truthvalue.TruthValue; import tools.refinery.store.tuple.Tuple; public interface MutableSeed extends Seed { diff --git a/subprojects/language-semantics/src/main/java/tools/refinery/language/semantics/internal/NullaryMutableSeed.java b/subprojects/language-semantics/src/main/java/tools/refinery/language/semantics/internal/NullaryMutableSeed.java index f100c5a6..09107a37 100644 --- a/subprojects/language-semantics/src/main/java/tools/refinery/language/semantics/internal/NullaryMutableSeed.java +++ b/subprojects/language-semantics/src/main/java/tools/refinery/language/semantics/internal/NullaryMutableSeed.java @@ -7,7 +7,7 @@ package tools.refinery.language.semantics.internal; import tools.refinery.store.map.Cursor; import tools.refinery.store.map.Cursors; -import tools.refinery.store.representation.TruthValue; +import tools.refinery.logic.term.truthvalue.TruthValue; import tools.refinery.store.tuple.Tuple; class NullaryMutableSeed implements MutableSeed { diff --git a/subprojects/language-semantics/src/main/java/tools/refinery/language/semantics/internal/TerminalNode.java b/subprojects/language-semantics/src/main/java/tools/refinery/language/semantics/internal/TerminalNode.java index dc501479..2ebaecef 100644 --- a/subprojects/language-semantics/src/main/java/tools/refinery/language/semantics/internal/TerminalNode.java +++ b/subprojects/language-semantics/src/main/java/tools/refinery/language/semantics/internal/TerminalNode.java @@ -10,7 +10,7 @@ import org.eclipse.collections.api.factory.primitive.IntObjectMaps; import org.eclipse.collections.api.map.primitive.MutableIntObjectMap; import org.eclipse.collections.api.tuple.primitive.IntObjectPair; import tools.refinery.store.tuple.Tuple; -import tools.refinery.store.representation.TruthValue; +import tools.refinery.logic.term.truthvalue.TruthValue; class TerminalNode extends DecisionTreeNode { private MutableIntObjectMap children; -- cgit v1.2.3-70-g09d2