Package-level declarations
Types
Base implementation of every :solve-classic it.unibo.tuprolog.solve.Solver/it.unibo.tuprolog.solve.MutableSolver (ClassicSolver and MutableClassicSolver, both internal, are the only two concrete subclasses; instances are normally obtained through ClassicSolverFactory, which is what Solver.prolog/Solver.classic resolve to).
One node of the :solve-classic choice-point queue: a saved point in the proof search that it.unibo.tuprolog.solve.classic.fsm.StateBacktracking can resume from, chained to its parent to form the full lineage of choice points recorded since the query started (see pathToRoot).
One frame of the :solve-classic execution-context stack: a substitution, the streams of remaining goals, candidate Rules and candidate primitive responses, plus a parent link. Frames chain into their parent rather than living in a separate stack container, so the parent chain (see pathToRoot) is the call stack -- ordinary heap-allocated data rather than native JVM/JS stack frames, which is what lets Prolog resolution of arbitrarily deep recursive programs run as an explicit, non-recursive it.unibo.tuprolog.solve.classic.fsm.State loop instead of unbounded host-language recursion.
The SolverFactory for :solve-classic, 2P-Kt's ISO-standard, SLD-NF resolution engine.
A SolutionIterator that can hijack a state transition, i.e. substitute the State the machine actually moves into for the one it would otherwise have computed.
Drives the :solve-classic finite-state machine, one State.next step at a time, and turns every visited end-state (see it.unibo.tuprolog.solve.classic.fsm.EndState) into an emitted Solution.
Functions
Chains a new ChoicePointContext.Primitives recording alternatives onto this (null meaning "the root").
Chains a new ChoicePointContext.Rules recording alternatives onto this (null meaning "the root").
The ChoicePointContext.depth a new choice point chained onto this one (or null, for the root) would have.