diff --git a/src/interpreter/Preprocessor.kt b/src/interpreter/Preprocessor.kt index 97edd8f..c65efd5 100644 --- a/src/interpreter/Preprocessor.kt +++ b/src/interpreter/Preprocessor.kt @@ -63,8 +63,6 @@ open class Preprocessor { Functor.of("functor/3") -> FunctorOp(args[0], args[1], args[2]) Functor.of("arg/3") -> Arg(args[0], args[1], args[2]) Functor.of("clause/2") -> ClauseOp(args[0] as Head, args[1] as Body) - Functor.of("atomic/1") -> AtomicOp(args[0]) - Functor.of("compound/1") -> CompoundOp(args[0]) // Arithmetic Functor.of("inf/0") -> Integer(Int.MAX_VALUE) @@ -113,6 +111,7 @@ open class Preprocessor { Functor.of("!/0") -> Cut() Functor.of(",/2") -> Conjunction(args[0] as LogicOperand, args[1] as LogicOperand) Functor.of(";/2") -> Disjunction(args[0] as LogicOperand, args[1] as LogicOperand) + Functor.of("|/2") -> Bar(args[0] as LogicOperand, args[1] as LogicOperand) Functor.of("\\+/1") -> Not(args[0] as Goal) // Database diff --git a/src/prolog/builtins/analysisOperators.kt b/src/prolog/builtins/analysisOperators.kt index 4aff69e..8982313 100644 --- a/src/prolog/builtins/analysisOperators.kt +++ b/src/prolog/builtins/analysisOperators.kt @@ -137,23 +137,3 @@ class ClauseOp(private val head: Head, private val body: Body) : } } } - -class AtomicOp(private val term: Term) : Operator(Atom("atomic"), null, term) { - override fun satisfy(subs: Substitutions): Answers { - return if (atomic(term, subs)) { - sequenceOf(Result.success(emptyMap())) - } else { - emptySequence() - } - } -} - -class CompoundOp(private val term: Term) : Operator(Atom("compound"), null, term) { - override fun satisfy(subs: Substitutions): Answers { - return if (compound(term, subs)) { - sequenceOf(Result.success(emptyMap())) - } else { - emptySequence() - } - } -} diff --git a/src/repl/Repl.kt b/src/repl/Repl.kt index 32326ba..4db4fbc 100644 --- a/src/repl/Repl.kt +++ b/src/repl/Repl.kt @@ -55,14 +55,7 @@ class Repl { } } - "" -> { - io.checkNewLine() - return - } - "a" -> { - io.checkNewLine() - return - } + "a" -> return "." -> { io.checkNewLine() return