Building Parsers with Java

Package sjm.engine

Interface Summary
ArithmeticTerm This marker interface indicates a type of term that can participate in an arithmetic expression, namely numbers, variables, and other arithmetic expressions.
Axiom In practice, an Axiom is either a fact or a rule, the two types of objects that can appear in a program.
AxiomEnumeration An object that implements the AxiomEnumeration interface generates a series of axioms, one at a time.
AxiomSource An AxiomSource is a provider of axioms.
BooleanTerm This marker interface indicates a type of term that evaluates to a Boolean.
ComparisonTerm This marker interface indicates a type of term that can participate in a comparison, including atoms, arithmetic expressions, and variables.
DynamicAxiom A DynamicAxiom is an axiom (that is, either a fact or a rule) that a structure can consult to prove itself.
Term The Term interface defines the core elements of the logic engine.
 

Class Summary
Anonymous An anonymous variable unifies successfully with any other term, without binding to the term.
ArithmeticOperator An ArithmeticOperator represents an arithmetic operation that will perform itself as part of a proof.
Atom An Atom is a Structure that no terms.
BooleanFact A BooleanFact is a fact with either Boolean.TRUE or Boolean.FALSE as its functor.
Comparison A Comparison object applies a comparison operator to its terms in order to prove itself.
ConsultingNot A ConsultingNot is a Not that has an axiom source to consult.
ConsultingStructure A ConsultingStructure is structure that can prove itself against an axiom source supplied with the constructor.
DynamicRule A DynamicRule represents a provable statement that a structure is true if a following series of other structures are true.
EmptyList The EmptyList is a list with no terms.
Evaluation An Evaluation unifies a term with the value of another term.
Fact A Fact is a Structure that contains only other Facts.
Gateway A Gateway is a structure that can prove its truth at most once before failing.
Not A Not is a structure that fails if it can prove itself against a program.
NumberFact A NumberFact is a fact with a Number as its functor.
Program A Program is a collection of rules and facts that together form a logical model.
ProgramEnumerator A ProgramEnumerator returns the axioms of a program, one at a time.
Query A Query is a dynamic rule that stands outside of a program and proves itself by referring to a program.
Rule A Rule represents a logic statement that a structure is true if a following series of other structures are true.
Scope A scope is a repository for variables.
Structure A Structure is a functor associated with a number of terms; a functor can be any object.
Unification A Unification is a collection of variables.
Variable A variable is a named term that can unify with other terms.
 

Exception Summary
EvaluationException Signals that an ArithmeticOperator could not be evaluated.
 


by Steve Metsker