1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
//! Scheme interpreter (ported from OpenJade)
//!
//! This module contains the Scheme R4RS interpreter ported from OpenJade's `style/` directory.
//!
//! ## Architecture
//!
//! Following OpenJade's structure:
//!
//! - `value`: Scheme value types (corresponds to `ELObj` hierarchy)
//! - `environment`: Variable bindings and lexical scoping (corresponds to Interpreter identifier tables)
//! - `parser`: Lexer and S-expression parser (corresponds to `SchemeParser.cxx`)
//! - `evaluator`: Core eval loop (corresponds to `Interpreter.cxx`)
//! - `primitives/`: Built-in Scheme procedures (corresponds to `primitive.cxx`)
//!
//! ## OpenJade Correspondence
//!
//! | Dazzle Module | OpenJade File | Lines | Purpose |
//! |------------------------|----------------------------|-------|----------------------------|
//! | `value.rs` | `style/ELObj.{h,cxx}` | ~1500 | Value types & operations |
//! | `environment.rs` | `style/Interpreter.cxx` | ~500 | Variable bindings |
//! | `parser.rs` | `style/SchemeParser.cxx` | ~2500 | Tokenizer & parser |
//! | `evaluator.rs` | `style/Interpreter.cxx` | ~2000 | Eval loop & control flow |
//! | `primitives/` | `style/primitive.cxx` | ~5700 | 236 built-in procedures |
//!
//! Total: ~12,200 lines C++ → estimated ~10,000 lines Rust
// Integration tests (cfg(test) only)
// Re-export key types for convenience
pub use Environment;
pub use ;
pub use ;
pub use ;