Crate neorusticus

Crate neorusticus 

Source
Expand description

Neorusticus - A Prolog implementation in Rust

This library provides a complete Prolog interpreter with enhanced error handling, arithmetic operations, list processing, and cut operations.

§Quick Start

use neorusticus::parse_term;

let term = parse_term("foo(bar, X)").unwrap();
println!("Parsed: {}", term);

§Architecture

The library is organized into several modules:

  • ast - Abstract syntax tree types
  • lexer - Tokenization of Prolog source code
  • parser - Parsing tokens into AST
  • unification - Unification algorithm
  • error - Error types and handling
  • builtins - Built-in predicates and functions
  • engine - The main Prolog engine for executing queries
  • utils - Utility functions for pretty printing, term manipulation, etc.

Re-exports§

pub use engine::PrologEngine;
pub use engine::EngineStats;
pub use engine::ExecutionContext;
pub use ast::Term;
pub use ast::Clause;
pub use error::ParseError;
pub use error::RuntimeError;
pub use error::ParseResult;
pub use error::RuntimeResult;
pub use lexer::Token;
pub use lexer::Tokenizer;
pub use parser::Parser;
pub use unification::Unifier;
pub use unification::Substitution;
pub use builtins::BuiltinPredicates;
pub use utils::PrettyPrinter;
pub use utils::TermUtils;
pub use utils::ClauseUtils;
pub use utils::EngineUtils;
pub use utils::DatabaseAnalysis;

Modules§

ast
Abstract Syntax Tree types for Prolog terms and clauses
builtins
Built-in predicates for the Prolog engine
engine
Main Prolog execution engine
error
Error types and position tracking for the Prolog parser and runtime
lexer
Lexical analysis for Prolog source code
parser
Parser for Prolog source code
unification
Unification algorithm for Prolog terms
utils
Utility functions for the Neorusticus Prolog engine

Functions§

parse_term
Convenience function for parsing a single term from a string
quick_query
Convenience function for creating and running a simple query