CompoundFinder

A AbstractClauseVisitor that detects whether a clause contains any compound term (a Struct with Struct.arity > 0) as an argument, anywhere in its head or body literals — the check backing it.unibo.tuprolog.datalog.hasNoCompound. Any non-Struct argument (a number, a variable, ...) is ignored (defaultValue).

clause.accept(CompoundFinder) is true as soon as any argument, at any nesting depth, is itself a Struct with one or more arguments — e.g. p(f(X)) is flagged because of f(X), while p(a, X) is not.

Functions

Link copied to clipboard
open override fun defaultValue(term: Term): Boolean
Link copied to clipboard
open override fun visitAtom(term: Atom): Boolean
Link copied to clipboard
open fun visitBlock(term: Block): Boolean
Link copied to clipboard
open override fun visitClause(term: Clause): Boolean
Link copied to clipboard
Link copied to clipboard
open fun visitCons(term: Cons): Boolean
Link copied to clipboard
open fun visitConstant(term: Constant): Boolean
Link copied to clipboard
Link copied to clipboard
open fun visitEmpty(term: Empty): Boolean
Link copied to clipboard
open override fun visitEmptyBlock(term: EmptyBlock): Boolean
Link copied to clipboard
open override fun visitEmptyList(term: EmptyList): Boolean
Link copied to clipboard
open fun visitFact(term: Fact): Boolean
Link copied to clipboard
open fun visitHead(head: Struct): Boolean

Visits the head of a Clause (a no-op wrapper around visitLiteral by default).

Link copied to clipboard
Link copied to clipboard
open fun visitInteger(term: Integer): Boolean
Link copied to clipboard
open fun visitList(term: List): Boolean
Link copied to clipboard
open override fun visitLiteral(literal: Struct): Boolean

Visits any literal (head or body) of a Clause, regardless of whether it is negated.

Link copied to clipboard
open fun visitNegatedLiteral(literal: Struct): Boolean

Visits a body literal known to be negated, receiving the literal inside the not(...)/\+(...) wrapper (not the wrapper itself). Falls back to visitLiteral.

Link copied to clipboard

Visits a body literal known not to be negated. Falls back to visitLiteral.

Link copied to clipboard
open fun visitNumeric(term: Numeric): Boolean
Link copied to clipboard
open fun visitReal(term: Real): Boolean
Link copied to clipboard
open fun visitRule(term: Rule): Boolean
Link copied to clipboard
open override fun visitStruct(term: Struct): Boolean
Link copied to clipboard
open fun visitTerm(term: Term): Boolean
Link copied to clipboard
open fun visitTruth(term: Truth): Boolean
Link copied to clipboard
open fun visitTuple(term: Tuple): Boolean
Link copied to clipboard
open fun visitVar(term: Var): Boolean