diff options
author | 2024-03-07 22:10:42 +0100 | |
---|---|---|
committer | 2024-04-07 14:55:46 +0200 | |
commit | 16a9b534adec2c53b50f92a43c1623918b1c59c0 (patch) | |
tree | 690b299a2ca31e302ddad219a7aa94bcf86d5d0b /subprojects/language-semantics/src | |
parent | fix(frontend): * operator highlighting (diff) | |
download | refinery-16a9b534adec2c53b50f92a43c1623918b1c59c0.tar.gz refinery-16a9b534adec2c53b50f92a43c1623918b1c59c0.tar.zst refinery-16a9b534adec2c53b50f92a43c1623918b1c59c0.zip |
refactor: move terms and DNF into logic subproject
Diffstat (limited to 'subprojects/language-semantics/src')
12 files changed, 53 insertions, 45 deletions
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; | |||
13 | import tools.refinery.language.semantics.internal.MutableSeed; | 13 | import tools.refinery.language.semantics.internal.MutableSeed; |
14 | import tools.refinery.language.utils.BuiltinSymbols; | 14 | import tools.refinery.language.utils.BuiltinSymbols; |
15 | import tools.refinery.language.utils.ProblemUtil; | 15 | import tools.refinery.language.utils.ProblemUtil; |
16 | import tools.refinery.logic.Constraint; | ||
17 | import tools.refinery.logic.dnf.InvalidClauseException; | ||
18 | import tools.refinery.logic.dnf.Query; | ||
19 | import tools.refinery.logic.dnf.RelationalQuery; | ||
20 | import tools.refinery.logic.literal.*; | ||
21 | import tools.refinery.logic.term.NodeVariable; | ||
22 | import tools.refinery.logic.term.Variable; | ||
23 | import tools.refinery.logic.term.cardinalityinterval.CardinalityInterval; | ||
24 | import tools.refinery.logic.term.cardinalityinterval.CardinalityIntervals; | ||
25 | import tools.refinery.logic.term.truthvalue.TruthValue; | ||
26 | import tools.refinery.logic.term.uppercardinality.UpperCardinalities; | ||
16 | import tools.refinery.store.dse.propagation.PropagationBuilder; | 27 | import tools.refinery.store.dse.propagation.PropagationBuilder; |
17 | import tools.refinery.store.model.ModelStoreBuilder; | 28 | import tools.refinery.store.model.ModelStoreBuilder; |
18 | import tools.refinery.store.query.Constraint; | ||
19 | import tools.refinery.store.query.dnf.InvalidClauseException; | ||
20 | import tools.refinery.store.query.dnf.Query; | ||
21 | import tools.refinery.store.query.dnf.RelationalQuery; | ||
22 | import tools.refinery.store.query.literal.*; | ||
23 | import tools.refinery.store.query.term.NodeVariable; | ||
24 | import tools.refinery.store.query.term.Variable; | ||
25 | import tools.refinery.store.reasoning.ReasoningAdapter; | 29 | import tools.refinery.store.reasoning.ReasoningAdapter; |
26 | import tools.refinery.store.reasoning.representation.PartialRelation; | 30 | import tools.refinery.store.reasoning.representation.PartialRelation; |
27 | import tools.refinery.store.reasoning.scope.ScopePropagator; | 31 | import tools.refinery.store.reasoning.scope.ScopePropagator; |
@@ -38,10 +42,6 @@ import tools.refinery.store.reasoning.translator.multiplicity.ConstrainedMultipl | |||
38 | import tools.refinery.store.reasoning.translator.multiplicity.Multiplicity; | 42 | import tools.refinery.store.reasoning.translator.multiplicity.Multiplicity; |
39 | import tools.refinery.store.reasoning.translator.multiplicity.UnconstrainedMultiplicity; | 43 | import tools.refinery.store.reasoning.translator.multiplicity.UnconstrainedMultiplicity; |
40 | import tools.refinery.store.reasoning.translator.predicate.PredicateTranslator; | 44 | import tools.refinery.store.reasoning.translator.predicate.PredicateTranslator; |
41 | import tools.refinery.store.representation.TruthValue; | ||
42 | import tools.refinery.store.representation.cardinality.CardinalityInterval; | ||
43 | import tools.refinery.store.representation.cardinality.CardinalityIntervals; | ||
44 | import tools.refinery.store.representation.cardinality.UpperCardinalities; | ||
45 | import tools.refinery.store.tuple.Tuple; | 45 | import tools.refinery.store.tuple.Tuple; |
46 | 46 | ||
47 | import java.util.*; | 47 | import java.util.*; |
@@ -204,20 +204,7 @@ public class ModelInitializer { | |||
204 | private void collectNodes() { | 204 | private void collectNodes() { |
205 | for (var importedProblem : importedProblems) { | 205 | for (var importedProblem : importedProblems) { |
206 | for (var statement : importedProblem.getStatements()) { | 206 | for (var statement : importedProblem.getStatements()) { |
207 | if (statement instanceof NodeDeclaration nodeDeclaration) { | 207 | collectNodes(statement); |
208 | for (var node : nodeDeclaration.getNodes()) { | ||
209 | collectNode(node); | ||
210 | } | ||
211 | } else if (statement instanceof ClassDeclaration classDeclaration) { | ||
212 | var newNode = classDeclaration.getNewNode(); | ||
213 | if (newNode != null) { | ||
214 | collectNode(newNode); | ||
215 | } | ||
216 | } else if (statement instanceof EnumDeclaration enumDeclaration) { | ||
217 | for (var literal : enumDeclaration.getLiterals()) { | ||
218 | collectNode(literal); | ||
219 | } | ||
220 | } | ||
221 | } | 208 | } |
222 | } | 209 | } |
223 | for (var node : problem.getNodes()) { | 210 | for (var node : problem.getNodes()) { |
@@ -225,6 +212,23 @@ public class ModelInitializer { | |||
225 | } | 212 | } |
226 | } | 213 | } |
227 | 214 | ||
215 | private void collectNodes(Statement statement) { | ||
216 | if (statement instanceof NodeDeclaration nodeDeclaration) { | ||
217 | for (var node : nodeDeclaration.getNodes()) { | ||
218 | collectNode(node); | ||
219 | } | ||
220 | } else if (statement instanceof ClassDeclaration classDeclaration) { | ||
221 | var newNode = classDeclaration.getNewNode(); | ||
222 | if (newNode != null) { | ||
223 | collectNode(newNode); | ||
224 | } | ||
225 | } else if (statement instanceof EnumDeclaration enumDeclaration) { | ||
226 | for (var literal : enumDeclaration.getLiterals()) { | ||
227 | collectNode(literal); | ||
228 | } | ||
229 | } | ||
230 | } | ||
231 | |||
228 | private void collectNode(Node node) { | 232 | private void collectNode(Node node) { |
229 | problemTrace.collectNode(node); | 233 | problemTrace.collectNode(node); |
230 | } | 234 | } |
@@ -725,14 +729,18 @@ public class ModelInitializer { | |||
725 | private void collectScopes() { | 729 | private void collectScopes() { |
726 | for (var importedProblem : importedProblems) { | 730 | for (var importedProblem : importedProblems) { |
727 | for (var statement : importedProblem.getStatements()) { | 731 | for (var statement : importedProblem.getStatements()) { |
728 | if (statement instanceof ScopeDeclaration scopeDeclaration) { | 732 | collectScopes(statement); |
729 | for (var typeScope : scopeDeclaration.getTypeScopes()) { | 733 | } |
730 | if (typeScope.isIncrement()) { | 734 | } |
731 | collectTypeScopeIncrement(typeScope); | 735 | } |
732 | } else { | 736 | |
733 | collectTypeScope(typeScope); | 737 | private void collectScopes(Statement statement) { |
734 | } | 738 | if (statement instanceof ScopeDeclaration scopeDeclaration) { |
735 | } | 739 | for (var typeScope : scopeDeclaration.getTypeScopes()) { |
740 | if (typeScope.isIncrement()) { | ||
741 | collectTypeScopeIncrement(typeScope); | ||
742 | } else { | ||
743 | collectTypeScope(typeScope); | ||
736 | } | 744 | } |
737 | } | 745 | } |
738 | } | 746 | } |
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; | |||
31 | import tools.refinery.store.reasoning.representation.PartialRelation; | 31 | import tools.refinery.store.reasoning.representation.PartialRelation; |
32 | import tools.refinery.store.reasoning.translator.typehierarchy.InferredType; | 32 | import tools.refinery.store.reasoning.translator.typehierarchy.InferredType; |
33 | import tools.refinery.store.reasoning.translator.typehierarchy.TypeHierarchyTranslator; | 33 | import tools.refinery.store.reasoning.translator.typehierarchy.TypeHierarchyTranslator; |
34 | import tools.refinery.store.representation.TruthValue; | 34 | import tools.refinery.logic.term.truthvalue.TruthValue; |
35 | import tools.refinery.store.tuple.Tuple; | 35 | import tools.refinery.store.tuple.Tuple; |
36 | 36 | ||
37 | import java.io.ByteArrayInputStream; | 37 | 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; | |||
7 | 7 | ||
8 | import org.eclipse.collections.api.factory.primitive.IntObjectMaps; | 8 | import org.eclipse.collections.api.factory.primitive.IntObjectMaps; |
9 | import tools.refinery.store.map.Cursor; | 9 | import tools.refinery.store.map.Cursor; |
10 | import tools.refinery.store.representation.TruthValue; | 10 | import tools.refinery.logic.term.truthvalue.TruthValue; |
11 | import tools.refinery.store.tuple.Tuple; | 11 | import tools.refinery.store.tuple.Tuple; |
12 | 12 | ||
13 | class DecisionTree implements MutableSeed<TruthValue> { | 13 | class DecisionTree implements MutableSeed<TruthValue> { |
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 @@ | |||
6 | package tools.refinery.language.semantics.internal; | 6 | package tools.refinery.language.semantics.internal; |
7 | 7 | ||
8 | import tools.refinery.store.map.Cursor; | 8 | import tools.refinery.store.map.Cursor; |
9 | import tools.refinery.store.representation.TruthValue; | 9 | import tools.refinery.logic.term.truthvalue.TruthValue; |
10 | import tools.refinery.store.tuple.Tuple; | 10 | import tools.refinery.store.tuple.Tuple; |
11 | 11 | ||
12 | import java.util.ArrayDeque; | 12 | 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; | |||
7 | 7 | ||
8 | import org.eclipse.collections.api.LazyIntIterable; | 8 | import org.eclipse.collections.api.LazyIntIterable; |
9 | import tools.refinery.store.tuple.Tuple; | 9 | import tools.refinery.store.tuple.Tuple; |
10 | import tools.refinery.store.representation.TruthValue; | 10 | import tools.refinery.logic.term.truthvalue.TruthValue; |
11 | 11 | ||
12 | abstract class DecisionTreeNode { | 12 | abstract class DecisionTreeNode { |
13 | public DecisionTreeValue getReducedValue() { | 13 | 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 @@ | |||
5 | */ | 5 | */ |
6 | package tools.refinery.language.semantics.internal; | 6 | package tools.refinery.language.semantics.internal; |
7 | 7 | ||
8 | import tools.refinery.store.representation.TruthValue; | 8 | import tools.refinery.logic.term.truthvalue.TruthValue; |
9 | 9 | ||
10 | public enum DecisionTreeValue { | 10 | public enum DecisionTreeValue { |
11 | UNSET(null), | 11 | 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; | |||
10 | import org.eclipse.collections.api.map.primitive.MutableIntObjectMap; | 10 | import org.eclipse.collections.api.map.primitive.MutableIntObjectMap; |
11 | import org.eclipse.collections.api.tuple.primitive.IntObjectPair; | 11 | import org.eclipse.collections.api.tuple.primitive.IntObjectPair; |
12 | import tools.refinery.store.tuple.Tuple; | 12 | import tools.refinery.store.tuple.Tuple; |
13 | import tools.refinery.store.representation.TruthValue; | 13 | import tools.refinery.logic.term.truthvalue.TruthValue; |
14 | 14 | ||
15 | final class IntermediateNode extends DecisionTreeNode { | 15 | final class IntermediateNode extends DecisionTreeNode { |
16 | private final MutableIntObjectMap<DecisionTreeNode> children; | 16 | private final MutableIntObjectMap<DecisionTreeNode> 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 @@ | |||
6 | package tools.refinery.language.semantics.internal; | 6 | package tools.refinery.language.semantics.internal; |
7 | 7 | ||
8 | import tools.refinery.store.reasoning.seed.Seed; | 8 | import tools.refinery.store.reasoning.seed.Seed; |
9 | import tools.refinery.store.representation.TruthValue; | 9 | import tools.refinery.logic.term.truthvalue.TruthValue; |
10 | import tools.refinery.store.tuple.Tuple; | 10 | import tools.refinery.store.tuple.Tuple; |
11 | 11 | ||
12 | public interface MutableSeed<T> extends Seed<T> { | 12 | public interface MutableSeed<T> extends Seed<T> { |
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; | |||
7 | 7 | ||
8 | import tools.refinery.store.map.Cursor; | 8 | import tools.refinery.store.map.Cursor; |
9 | import tools.refinery.store.map.Cursors; | 9 | import tools.refinery.store.map.Cursors; |
10 | import tools.refinery.store.representation.TruthValue; | 10 | import tools.refinery.logic.term.truthvalue.TruthValue; |
11 | import tools.refinery.store.tuple.Tuple; | 11 | import tools.refinery.store.tuple.Tuple; |
12 | 12 | ||
13 | class NullaryMutableSeed implements MutableSeed<TruthValue> { | 13 | class NullaryMutableSeed implements MutableSeed<TruthValue> { |
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; | |||
10 | import org.eclipse.collections.api.map.primitive.MutableIntObjectMap; | 10 | import org.eclipse.collections.api.map.primitive.MutableIntObjectMap; |
11 | import org.eclipse.collections.api.tuple.primitive.IntObjectPair; | 11 | import org.eclipse.collections.api.tuple.primitive.IntObjectPair; |
12 | import tools.refinery.store.tuple.Tuple; | 12 | import tools.refinery.store.tuple.Tuple; |
13 | import tools.refinery.store.representation.TruthValue; | 13 | import tools.refinery.logic.term.truthvalue.TruthValue; |
14 | 14 | ||
15 | class TerminalNode extends DecisionTreeNode { | 15 | class TerminalNode extends DecisionTreeNode { |
16 | private MutableIntObjectMap<TruthValue> children; | 16 | private MutableIntObjectMap<TruthValue> children; |
diff --git a/subprojects/language-semantics/src/test/java/tools/refinery/language/semantics/CountPropagationTest.java b/subprojects/language-semantics/src/test/java/tools/refinery/language/semantics/CountPropagationTest.java index b679c1ef..207bc7ff 100644 --- a/subprojects/language-semantics/src/test/java/tools/refinery/language/semantics/CountPropagationTest.java +++ b/subprojects/language-semantics/src/test/java/tools/refinery/language/semantics/CountPropagationTest.java | |||
@@ -19,8 +19,8 @@ import tools.refinery.store.reasoning.seed.ModelSeed; | |||
19 | import tools.refinery.store.reasoning.translator.multiobject.MultiObjectTranslator; | 19 | import tools.refinery.store.reasoning.translator.multiobject.MultiObjectTranslator; |
20 | import tools.refinery.store.reasoning.translator.typehierarchy.TypeHierarchy; | 20 | import tools.refinery.store.reasoning.translator.typehierarchy.TypeHierarchy; |
21 | import tools.refinery.store.reasoning.translator.typehierarchy.TypeHierarchyTranslator; | 21 | import tools.refinery.store.reasoning.translator.typehierarchy.TypeHierarchyTranslator; |
22 | import tools.refinery.store.representation.TruthValue; | 22 | import tools.refinery.logic.term.truthvalue.TruthValue; |
23 | import tools.refinery.store.representation.cardinality.CardinalityIntervals; | 23 | import tools.refinery.logic.term.cardinalityinterval.CardinalityIntervals; |
24 | import tools.refinery.store.tuple.Tuple; | 24 | import tools.refinery.store.tuple.Tuple; |
25 | 25 | ||
26 | import static org.hamcrest.MatcherAssert.assertThat; | 26 | import static org.hamcrest.MatcherAssert.assertThat; |
diff --git a/subprojects/language-semantics/src/test/java/tools/refinery/language/semantics/internal/DecisionTreeTests.java b/subprojects/language-semantics/src/test/java/tools/refinery/language/semantics/internal/DecisionTreeTests.java index 61ce850f..cb0885c1 100644 --- a/subprojects/language-semantics/src/test/java/tools/refinery/language/semantics/internal/DecisionTreeTests.java +++ b/subprojects/language-semantics/src/test/java/tools/refinery/language/semantics/internal/DecisionTreeTests.java | |||
@@ -6,7 +6,7 @@ | |||
6 | package tools.refinery.language.semantics.internal; | 6 | package tools.refinery.language.semantics.internal; |
7 | 7 | ||
8 | import org.junit.jupiter.api.Test; | 8 | import org.junit.jupiter.api.Test; |
9 | import tools.refinery.store.representation.TruthValue; | 9 | import tools.refinery.logic.term.truthvalue.TruthValue; |
10 | import tools.refinery.store.tuple.Tuple; | 10 | import tools.refinery.store.tuple.Tuple; |
11 | 11 | ||
12 | import java.util.LinkedHashMap; | 12 | import java.util.LinkedHashMap; |