Skip to content

Commit 4c41dff

Browse files
committed
fix(solver-tuprolog): add unimplemented methods on the term to 2pkt-Term visitor
1 parent 47efeaa commit 4c41dff

File tree

1 file changed

+35
-13
lines changed

1 file changed

+35
-13
lines changed

src/main/scala/io/github/kelvindev15/prolog/solver/tuprolog/visitors/From2PKtTermVisitor.scala

Lines changed: 35 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -4,22 +4,11 @@ import io.github.kelvindev15.prolog.core.Constant.Atom
44
import io.github.kelvindev15.prolog.core.PrologList.Cons
55
import io.github.kelvindev15.prolog.core.*
66
import it.unibo.tuprolog.core
7-
import it.unibo.tuprolog.core.{
8-
TermVisitor,
9-
Atom as KAtom,
10-
Cons as KCons,
11-
Constant as KConstant,
12-
EmptyList as KEmptyList,
13-
Integer as KInteger,
14-
Real as KReal,
15-
Struct as KStruct,
16-
Term as KTerm,
17-
Var as KVariable
18-
}
7+
import it.unibo.tuprolog.core.{Block, Clause, Directive, Empty, EmptyBlock, Fact, Indicator, Recursive, Rule, TermVisitor, Truth, Atom as KAtom, Cons as KCons, Constant as KConstant, EmptyList as KEmptyList, Integer as KInteger, Real as KReal, Struct as KStruct, Term as KTerm, Var as KVariable}
198

209
import scala.jdk.CollectionConverters.*
2110

22-
/** Converts the [[Term]] hierarchy to a tuProlog [[KTerm]] hierarchy */
11+
/** Converts the [[KTerm]] hierarchy to a tuProlog [[Term]] hierarchy */
2312
private[tuprolog] object From2PKtTermVisitor extends TermVisitor[Term]:
2413

2514
override def defaultValue(term: KTerm): Term = term match
@@ -29,6 +18,7 @@ private[tuprolog] object From2PKtTermVisitor extends TermVisitor[Term]:
2918
case variable: KVariable => visitVar(variable)
3019
case constant: KConstant => visitConstant(constant)
3120
case struct: KStruct => visitStruct(struct)
21+
case _ => throw NotImplementedError(s"The 2p-kt $term term cannot be currently converted to a term")
3222

3323
override def visitAtom(term: KAtom): Atom = Atom(term.getValue)
3424

@@ -51,3 +41,35 @@ private[tuprolog] object From2PKtTermVisitor extends TermVisitor[Term]:
5141
override def visitConstant(term: KConstant): Term = term match
5242
case integer: KInteger => Constant(integer.getValue.toInt)
5343
case double: KReal => Constant(double.getValue.toDouble)
44+
45+
override def visitBlock(block: Block): Term = defaultValue(block)
46+
47+
override def visitClause(clause: Clause): Term = defaultValue(clause)
48+
49+
override def visitCollection(recursive: Recursive): Term = defaultValue(recursive)
50+
51+
override def visitDirective(directive: Directive): Term = defaultValue(directive)
52+
53+
override def visitEmpty(empty: Empty): Term = defaultValue(empty)
54+
55+
override def visitEmptyBlock(emptyBlock: EmptyBlock): Term = defaultValue(emptyBlock)
56+
57+
override def visitFact(fact: Fact): Term = defaultValue(fact)
58+
59+
override def visitIndicator(indicator: Indicator): Term = defaultValue(indicator)
60+
61+
override def visitInteger(integer: KInteger): Term = defaultValue(integer)
62+
63+
override def visitList(list: core.List): Term = defaultValue(list)
64+
65+
override def visitNumeric(numeric: core.Numeric): Term = defaultValue(numeric)
66+
67+
override def visitReal(real: KReal): Term = defaultValue(real)
68+
69+
override def visitRule(rule: Rule): Term = defaultValue(rule)
70+
71+
override def visitTerm(term: KTerm): Term = defaultValue(term)
72+
73+
override def visitTruth(truth: Truth): Term = defaultValue(truth)
74+
75+
override def visitTuple(tuple: core.Tuple): Term = defaultValue(tuple)

0 commit comments

Comments
 (0)