Expand description
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 toELObjhierarchy)environment: Variable bindings and lexical scoping (corresponds to Interpreter identifier tables)parser: Lexer and S-expression parser (corresponds toSchemeParser.cxx)evaluator: Core eval loop (corresponds toInterpreter.cxx)primitives/: Built-in Scheme procedures (corresponds toprimitive.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
Re-exports§
pub use environment::Environment;pub use evaluator::EvalError;pub use evaluator::EvalResult;pub use evaluator::Evaluator;pub use parser::ParseError;pub use parser::Parser;pub use parser::Position;pub use parser::Tokenizer;pub use value::PairData;pub use value::Procedure;pub use value::Value;
Modules§
- environment
- Scheme environment (variable bindings and lexical scoping)
- evaluator
- Scheme evaluator (eval loop)
- parser
- Scheme parser (lexer + S-expression parser)
- primitives
- Scheme primitive procedures
- value
- Scheme value types