From 3bdcbc0aa8cb1df93299bd88e131ca02ea1973d9 Mon Sep 17 00:00:00 2001 From: Fedor Isakov Date: Sat, 8 Sep 2018 13:16:43 +0200 Subject: [PATCH] Rename TermTrie -> PersistentTermTrie, remove dummy usages. --- .../{TermTrie.kt => PersistentTermTrie.kt} | 6 ++--- .../mps/logic/reactor/core/RuleIndex.kt | 4 +-- .../jetbrains/mps/logic/reactor/core/Store.kt | 2 -- reactor/Test/test/TestTermTrie.kt | 26 +++++++++---------- 4 files changed, 18 insertions(+), 20 deletions(-) rename reactor/Core/src/jetbrains/mps/logic/reactor/core/{TermTrie.kt => PersistentTermTrie.kt} (97%) diff --git a/reactor/Core/src/jetbrains/mps/logic/reactor/core/TermTrie.kt b/reactor/Core/src/jetbrains/mps/logic/reactor/core/PersistentTermTrie.kt similarity index 97% rename from reactor/Core/src/jetbrains/mps/logic/reactor/core/TermTrie.kt rename to reactor/Core/src/jetbrains/mps/logic/reactor/core/PersistentTermTrie.kt index 6780fdaf..7541ca56 100644 --- a/reactor/Core/src/jetbrains/mps/logic/reactor/core/TermTrie.kt +++ b/reactor/Core/src/jetbrains/mps/logic/reactor/core/PersistentTermTrie.kt @@ -46,7 +46,7 @@ import java.util.* * Elsevier Sci. Pub. B. V., Amsterdam, The Netherlands, The Netherlands. * */ -class TermTrie() { +class PersistentTermTrie() { private companion object { @@ -66,9 +66,9 @@ class TermTrie() { this.root = setRoot } - fun put(term: Term, value: T): TermTrie = TermTrie(putValue(term, value)) + fun put(term: Term, value: T): PersistentTermTrie = PersistentTermTrie(putValue(term, value)) - fun remove(term: Term, value: T): TermTrie = TermTrie(removeValue(term, value)) + fun remove(term: Term, value: T): PersistentTermTrie = PersistentTermTrie(removeValue(term, value)) fun lookupValues(term: Term): Iterable { val result = ArrayList() diff --git a/reactor/Core/src/jetbrains/mps/logic/reactor/core/RuleIndex.kt b/reactor/Core/src/jetbrains/mps/logic/reactor/core/RuleIndex.kt index 7657405e..c133106e 100644 --- a/reactor/Core/src/jetbrains/mps/logic/reactor/core/RuleIndex.kt +++ b/reactor/Core/src/jetbrains/mps/logic/reactor/core/RuleIndex.kt @@ -115,14 +115,14 @@ class RuleIndex(handlers: Iterable) : Iterable { val anySelectors = ArrayList>() - val termSelectors = ArrayList>() + val termSelectors = ArrayList>() val wildcardSelectors = ArrayList() init { for (idx in 1..symbol.arity()) { anySelectors.add(HashMap()) - termSelectors.add(TermTrie()) + termSelectors.add(PersistentTermTrie()) wildcardSelectors.add(BitSet()) } } diff --git a/reactor/Core/src/jetbrains/mps/logic/reactor/core/Store.kt b/reactor/Core/src/jetbrains/mps/logic/reactor/core/Store.kt index 234cceee..8d9aeeab 100644 --- a/reactor/Core/src/jetbrains/mps/logic/reactor/core/Store.kt +++ b/reactor/Core/src/jetbrains/mps/logic/reactor/core/Store.kt @@ -89,14 +89,12 @@ class Store : LogicalObserver { .fold(Maps.of()) { map, sym -> map.put(sym, IdHashSet(copyFrom.occurrences(sym))) } var l2o = Maps.of>, IdHashSet>() - var t2o = TermTrie() var v2o = Maps.of>() copyFrom.allOccurrences().forEach { occ -> occ.arguments().forEach { arg -> when (arg) { is Logical<*> -> l2o = l2o.put(IdWrapper(arg.findRoot()), l2o[IdWrapper(arg.findRoot())]?.add(occ) ?: singletonSet(occ)) - is Term -> t2o = t2o.put(arg.withConstraint(occ.constraint()), occ) is Any -> v2o = v2o.put(arg, v2o[arg]?.add(occ) ?: singletonSet(occ)) } } diff --git a/reactor/Test/test/TestTermTrie.kt b/reactor/Test/test/TestTermTrie.kt index 33841e33..d7dba41a 100644 --- a/reactor/Test/test/TestTermTrie.kt +++ b/reactor/Test/test/TestTermTrie.kt @@ -1,4 +1,4 @@ -import jetbrains.mps.logic.reactor.core.TermTrie +import jetbrains.mps.logic.reactor.core.PersistentTermTrie import jetbrains.mps.unification.test.MockTerm.* import jetbrains.mps.unification.test.MockTermsParser.parseTerm import org.junit.Test @@ -18,7 +18,7 @@ class TestTermTrie { val t3 = parseTerm("f{g h{i k{l m{o p} n}}}") val t4 = parseTerm("f{g h{i q }}") - val trie1 = TermTrie().runs( + val trie1 = PersistentTermTrie().runs( { put(t1, "foo") }, { put(t2, "bar") }, { put(t3, "qux") }, @@ -49,7 +49,7 @@ class TestTermTrie { val t3 = parseTerm("f{g h{i k{l m{o p} n}}}") val t4 = parseTerm("f{g h{i q }}") - val trie1 = TermTrie().runs( + val trie1 = PersistentTermTrie().runs( { put(t1, "foo") }, { put(t2, "bar") }, { put(t3, "qux") }, @@ -80,7 +80,7 @@ class TestTermTrie { val t1 = parseTerm("a{b c}") val t2 = parseTerm("a{b d}") - val trie1 = TermTrie().runs( + val trie1 = PersistentTermTrie().runs( { put(t1, "foo") }, { put(t2, "bar") } ) @@ -115,7 +115,7 @@ class TestTermTrie { val t4 = parseTerm("f{g{X b} X}") val t5 = parseTerm("f{X Y}") - val tt = TermTrie().runs( + val tt = PersistentTermTrie().runs( { put(t1, "t1") }, { put(t2, "t2") }, { put(t3, "t3") }, @@ -139,7 +139,7 @@ class TestTermTrie { val t1 = parseTerm("a{b c}") val t2 = parseTerm("b{c d}") - val trie1 = TermTrie().runs ( + val trie1 = PersistentTermTrie().runs ( { put(t1, "foo") }, { put(t2, "bar") } ) @@ -156,7 +156,7 @@ class TestTermTrie { val t1 = parseTerm("a{X c}") val t2 = parseTerm("b{c Y}") - val trie1 = TermTrie().runs( + val trie1 = PersistentTermTrie().runs( { put(t1, "foo") }, { put(t2, "bar") } ) @@ -182,7 +182,7 @@ class TestTermTrie { val t3 = parseTerm("f{g h{i k{l m{o p} n}}}") val t4 = parseTerm("f{g h{i q }}") - val trie1 = TermTrie().runs( + val trie1 = PersistentTermTrie().runs( { put(t1, "foo") }, { put(t2, "bar") }, { put(t3, "qux") }, @@ -206,7 +206,7 @@ class TestTermTrie { val t4 = parseTerm("f{g h{Z k{l m{o p} n}}}") val t5 = parseTerm("f{Z h{i q }}") - val trie1 = TermTrie().runs( + val trie1 = PersistentTermTrie().runs( { put(t1, "foo") }, { put(t2, "bar") }, { put(t3, "bazz") }, @@ -235,7 +235,7 @@ class TestTermTrie { val t3 = parseTerm("a{c Y}") val t4 = parseTerm("a{X Y}") - val trie1 = TermTrie().runs( + val trie1 = PersistentTermTrie().runs( { put(t1, "foo") }, { put(t2, "bar") }, { put(t3, "bazz") }, @@ -258,7 +258,7 @@ class TestTermTrie { fun testRefTerm() { val varRef = MockRef(MockVar("TAIL")) val pattern = MockFun("g", MockFun("h"), MockFun("f", varRef, MockFun("nil"))) - val trie1 = TermTrie().runs( + val trie1 = PersistentTermTrie().runs( { put(parseTerm("g {h f {a nil}}"), "bar") }, { put(parseTerm("g {h f {a f {b nil}}}"), "bazz") }, { put(pattern, "foo") }, @@ -273,7 +273,7 @@ class TestTermTrie { @Test fun testRefList() { - val trie = TermTrie().runs( + val trie = PersistentTermTrie().runs( { put(parseTerm("f{X Y}"), "foo") }, { put(parseTerm("f{a Z}"), "bar") }, { put(parseTerm("f{a f{b W}}"), "bazz") } @@ -287,7 +287,7 @@ class TestTermTrie { @Test fun testCyclicTerm() { - val trie = TermTrie().runs( + val trie = PersistentTermTrie().runs( { put(parseTerm("cst{ @1 n{ a{b c} d{^1} } }"), "foo") }, { put(parseTerm("cst{ n{ @2 a{b ^2} d{e} } }"), "bar") } )