aboutsummaryrefslogtreecommitdiffstats
path: root/subprojects/language-semantics/src
diff options
context:
space:
mode:
authorLibravatar Kristóf Marussy <kristof@marussy.com>2024-03-07 22:10:42 +0100
committerLibravatar Kristóf Marussy <kristof@marussy.com>2024-04-07 14:55:46 +0200
commit16a9b534adec2c53b50f92a43c1623918b1c59c0 (patch)
tree690b299a2ca31e302ddad219a7aa94bcf86d5d0b /subprojects/language-semantics/src
parentfix(frontend): * operator highlighting (diff)
downloadrefinery-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')
-rw-r--r--subprojects/language-semantics/src/main/java/tools/refinery/language/semantics/ModelInitializer.java74
-rw-r--r--subprojects/language-semantics/src/main/java/tools/refinery/language/semantics/SolutionSerializer.java2
-rw-r--r--subprojects/language-semantics/src/main/java/tools/refinery/language/semantics/internal/DecisionTree.java2
-rw-r--r--subprojects/language-semantics/src/main/java/tools/refinery/language/semantics/internal/DecisionTreeCursor.java2
-rw-r--r--subprojects/language-semantics/src/main/java/tools/refinery/language/semantics/internal/DecisionTreeNode.java2
-rw-r--r--subprojects/language-semantics/src/main/java/tools/refinery/language/semantics/internal/DecisionTreeValue.java2
-rw-r--r--subprojects/language-semantics/src/main/java/tools/refinery/language/semantics/internal/IntermediateNode.java2
-rw-r--r--subprojects/language-semantics/src/main/java/tools/refinery/language/semantics/internal/MutableSeed.java2
-rw-r--r--subprojects/language-semantics/src/main/java/tools/refinery/language/semantics/internal/NullaryMutableSeed.java2
-rw-r--r--subprojects/language-semantics/src/main/java/tools/refinery/language/semantics/internal/TerminalNode.java2
-rw-r--r--subprojects/language-semantics/src/test/java/tools/refinery/language/semantics/CountPropagationTest.java4
-rw-r--r--subprojects/language-semantics/src/test/java/tools/refinery/language/semantics/internal/DecisionTreeTests.java2
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;
13import tools.refinery.language.semantics.internal.MutableSeed; 13import tools.refinery.language.semantics.internal.MutableSeed;
14import tools.refinery.language.utils.BuiltinSymbols; 14import tools.refinery.language.utils.BuiltinSymbols;
15import tools.refinery.language.utils.ProblemUtil; 15import tools.refinery.language.utils.ProblemUtil;
16import tools.refinery.logic.Constraint;
17import tools.refinery.logic.dnf.InvalidClauseException;
18import tools.refinery.logic.dnf.Query;
19import tools.refinery.logic.dnf.RelationalQuery;
20import tools.refinery.logic.literal.*;
21import tools.refinery.logic.term.NodeVariable;
22import tools.refinery.logic.term.Variable;
23import tools.refinery.logic.term.cardinalityinterval.CardinalityInterval;
24import tools.refinery.logic.term.cardinalityinterval.CardinalityIntervals;
25import tools.refinery.logic.term.truthvalue.TruthValue;
26import tools.refinery.logic.term.uppercardinality.UpperCardinalities;
16import tools.refinery.store.dse.propagation.PropagationBuilder; 27import tools.refinery.store.dse.propagation.PropagationBuilder;
17import tools.refinery.store.model.ModelStoreBuilder; 28import tools.refinery.store.model.ModelStoreBuilder;
18import tools.refinery.store.query.Constraint;
19import tools.refinery.store.query.dnf.InvalidClauseException;
20import tools.refinery.store.query.dnf.Query;
21import tools.refinery.store.query.dnf.RelationalQuery;
22import tools.refinery.store.query.literal.*;
23import tools.refinery.store.query.term.NodeVariable;
24import tools.refinery.store.query.term.Variable;
25import tools.refinery.store.reasoning.ReasoningAdapter; 29import tools.refinery.store.reasoning.ReasoningAdapter;
26import tools.refinery.store.reasoning.representation.PartialRelation; 30import tools.refinery.store.reasoning.representation.PartialRelation;
27import tools.refinery.store.reasoning.scope.ScopePropagator; 31import tools.refinery.store.reasoning.scope.ScopePropagator;
@@ -38,10 +42,6 @@ import tools.refinery.store.reasoning.translator.multiplicity.ConstrainedMultipl
38import tools.refinery.store.reasoning.translator.multiplicity.Multiplicity; 42import tools.refinery.store.reasoning.translator.multiplicity.Multiplicity;
39import tools.refinery.store.reasoning.translator.multiplicity.UnconstrainedMultiplicity; 43import tools.refinery.store.reasoning.translator.multiplicity.UnconstrainedMultiplicity;
40import tools.refinery.store.reasoning.translator.predicate.PredicateTranslator; 44import tools.refinery.store.reasoning.translator.predicate.PredicateTranslator;
41import tools.refinery.store.representation.TruthValue;
42import tools.refinery.store.representation.cardinality.CardinalityInterval;
43import tools.refinery.store.representation.cardinality.CardinalityIntervals;
44import tools.refinery.store.representation.cardinality.UpperCardinalities;
45import tools.refinery.store.tuple.Tuple; 45import tools.refinery.store.tuple.Tuple;
46 46
47import java.util.*; 47import 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;
31import tools.refinery.store.reasoning.representation.PartialRelation; 31import tools.refinery.store.reasoning.representation.PartialRelation;
32import tools.refinery.store.reasoning.translator.typehierarchy.InferredType; 32import tools.refinery.store.reasoning.translator.typehierarchy.InferredType;
33import tools.refinery.store.reasoning.translator.typehierarchy.TypeHierarchyTranslator; 33import tools.refinery.store.reasoning.translator.typehierarchy.TypeHierarchyTranslator;
34import tools.refinery.store.representation.TruthValue; 34import tools.refinery.logic.term.truthvalue.TruthValue;
35import tools.refinery.store.tuple.Tuple; 35import tools.refinery.store.tuple.Tuple;
36 36
37import java.io.ByteArrayInputStream; 37import 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
8import org.eclipse.collections.api.factory.primitive.IntObjectMaps; 8import org.eclipse.collections.api.factory.primitive.IntObjectMaps;
9import tools.refinery.store.map.Cursor; 9import tools.refinery.store.map.Cursor;
10import tools.refinery.store.representation.TruthValue; 10import tools.refinery.logic.term.truthvalue.TruthValue;
11import tools.refinery.store.tuple.Tuple; 11import tools.refinery.store.tuple.Tuple;
12 12
13class DecisionTree implements MutableSeed<TruthValue> { 13class 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 @@
6package tools.refinery.language.semantics.internal; 6package tools.refinery.language.semantics.internal;
7 7
8import tools.refinery.store.map.Cursor; 8import tools.refinery.store.map.Cursor;
9import tools.refinery.store.representation.TruthValue; 9import tools.refinery.logic.term.truthvalue.TruthValue;
10import tools.refinery.store.tuple.Tuple; 10import tools.refinery.store.tuple.Tuple;
11 11
12import java.util.ArrayDeque; 12import 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
8import org.eclipse.collections.api.LazyIntIterable; 8import org.eclipse.collections.api.LazyIntIterable;
9import tools.refinery.store.tuple.Tuple; 9import tools.refinery.store.tuple.Tuple;
10import tools.refinery.store.representation.TruthValue; 10import tools.refinery.logic.term.truthvalue.TruthValue;
11 11
12abstract class DecisionTreeNode { 12abstract 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 */
6package tools.refinery.language.semantics.internal; 6package tools.refinery.language.semantics.internal;
7 7
8import tools.refinery.store.representation.TruthValue; 8import tools.refinery.logic.term.truthvalue.TruthValue;
9 9
10public enum DecisionTreeValue { 10public 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;
10import org.eclipse.collections.api.map.primitive.MutableIntObjectMap; 10import org.eclipse.collections.api.map.primitive.MutableIntObjectMap;
11import org.eclipse.collections.api.tuple.primitive.IntObjectPair; 11import org.eclipse.collections.api.tuple.primitive.IntObjectPair;
12import tools.refinery.store.tuple.Tuple; 12import tools.refinery.store.tuple.Tuple;
13import tools.refinery.store.representation.TruthValue; 13import tools.refinery.logic.term.truthvalue.TruthValue;
14 14
15final class IntermediateNode extends DecisionTreeNode { 15final 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 @@
6package tools.refinery.language.semantics.internal; 6package tools.refinery.language.semantics.internal;
7 7
8import tools.refinery.store.reasoning.seed.Seed; 8import tools.refinery.store.reasoning.seed.Seed;
9import tools.refinery.store.representation.TruthValue; 9import tools.refinery.logic.term.truthvalue.TruthValue;
10import tools.refinery.store.tuple.Tuple; 10import tools.refinery.store.tuple.Tuple;
11 11
12public interface MutableSeed<T> extends Seed<T> { 12public 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
8import tools.refinery.store.map.Cursor; 8import tools.refinery.store.map.Cursor;
9import tools.refinery.store.map.Cursors; 9import tools.refinery.store.map.Cursors;
10import tools.refinery.store.representation.TruthValue; 10import tools.refinery.logic.term.truthvalue.TruthValue;
11import tools.refinery.store.tuple.Tuple; 11import tools.refinery.store.tuple.Tuple;
12 12
13class NullaryMutableSeed implements MutableSeed<TruthValue> { 13class 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;
10import org.eclipse.collections.api.map.primitive.MutableIntObjectMap; 10import org.eclipse.collections.api.map.primitive.MutableIntObjectMap;
11import org.eclipse.collections.api.tuple.primitive.IntObjectPair; 11import org.eclipse.collections.api.tuple.primitive.IntObjectPair;
12import tools.refinery.store.tuple.Tuple; 12import tools.refinery.store.tuple.Tuple;
13import tools.refinery.store.representation.TruthValue; 13import tools.refinery.logic.term.truthvalue.TruthValue;
14 14
15class TerminalNode extends DecisionTreeNode { 15class 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;
19import tools.refinery.store.reasoning.translator.multiobject.MultiObjectTranslator; 19import tools.refinery.store.reasoning.translator.multiobject.MultiObjectTranslator;
20import tools.refinery.store.reasoning.translator.typehierarchy.TypeHierarchy; 20import tools.refinery.store.reasoning.translator.typehierarchy.TypeHierarchy;
21import tools.refinery.store.reasoning.translator.typehierarchy.TypeHierarchyTranslator; 21import tools.refinery.store.reasoning.translator.typehierarchy.TypeHierarchyTranslator;
22import tools.refinery.store.representation.TruthValue; 22import tools.refinery.logic.term.truthvalue.TruthValue;
23import tools.refinery.store.representation.cardinality.CardinalityIntervals; 23import tools.refinery.logic.term.cardinalityinterval.CardinalityIntervals;
24import tools.refinery.store.tuple.Tuple; 24import tools.refinery.store.tuple.Tuple;
25 25
26import static org.hamcrest.MatcherAssert.assertThat; 26import 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 @@
6package tools.refinery.language.semantics.internal; 6package tools.refinery.language.semantics.internal;
7 7
8import org.junit.jupiter.api.Test; 8import org.junit.jupiter.api.Test;
9import tools.refinery.store.representation.TruthValue; 9import tools.refinery.logic.term.truthvalue.TruthValue;
10import tools.refinery.store.tuple.Tuple; 10import tools.refinery.store.tuple.Tuple;
11 11
12import java.util.LinkedHashMap; 12import java.util.LinkedHashMap;