All Downloads are FREE. Search and download functionalities are using the official Maven repository.

it.unibo.tuprolog.dsl.jakta.LogicProgrammingScopeWithJaktaExtensions.kt Maven / Gradle / Ivy

package it.unibo.tuprolog.dsl.jakta

import it.unibo.tuprolog.core.Atom
import it.unibo.tuprolog.core.Struct
import it.unibo.tuprolog.dsl.BaseLogicProgrammingScope

interface LogicProgrammingScopeWithJaktaExtensions> :
    BaseLogicProgrammingScope {
    fun Struct.source(name: String): Struct =
        addFirst(Struct.of("source", Atom.of(name)))

    fun String.source(name: String): Struct =
        atomOf(this).addFirst(Struct.of("source", Atom.of(name)))

    val Struct.fromSelf
        get() = source("self")

    val String.fromSelf
        get() = source("self")

    val Struct.fromPercept
        get() = source("percept")

    val String.fromPercept
        get() = source("percept")
}