Expand description
The rl tree-walking interpreter.
§Pipeline
source text
└─ Tokenizer::lex() → Vec<Token>
└─ Parser::parse() → Vec<Statement>
└─ Resolver::resolve() → Vec<Statement> (names → depth/slot)
└─ Evaluator::evaluate_program() → ()§Modules
evaluator- the core [Evaluator] struct and expression evaluationvalues- the [Value] enum representing all runtime valuesnative- [Module], [NativeFn], and the trait system for binding Rust functionsscopes- environment stack: push/pop/insert/assign/getstdlib- all built-in stdlib modulesutils- binary/unary operator dispatch and statement evaluation
Modules§
- evaluator
- Core evaluator - expression evaluation, function calls, and the runtime state.
- evaluator_
types 🔒 - Extra expression evaluation helpers that live outside the main
evaluator.rsto keep it from becoming too large. - native
- The native function binding system -
Module,NativeFn, and theIntoNativeFn/FromValue/IntoValuetrait machinery. - scopes 🔒
- Environment stack operations - scope management and slot-indexed value access.
- stdlib
- The rl standard library - all built-in modules registered under
std::*. - utils 🔒
- Internal evaluator utilities - binary/unary operator dispatch and statement evaluation.
- values
- Runtime value types for the rl interpreter.