stackr_rs/interpreter/built_ins/
mod.rs

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
42
43
44
/// Definitions for addressing words.
mod addressing;
/// Definitions for compiling words.
mod compiler;
/// Definitions for conditional words.
mod conditionals;
/// Definitions for control flow words.
mod control_flow;
/// Definitions for equality words.
mod equality;
/// Definitions for logic words.
mod logic;
/// Definitions for math words.
mod math;
/// Definitions for read mode words.
mod read_mode;
/// Definitions for runtime words.
mod runtime;
/// Definitions for stack words.
mod stack_ops;
/// Definitions for string words.
mod string;

use super::*;

/// A type alias for the operation a built-in word performs.
pub type BuiltIn<State> = fn(&mut Interpreter<State>) -> Result<(), Err>;

impl<State> Interpreter<State> {
    /// Register all built-in words.
    pub(crate) fn register_builtins(&mut self) {
        runtime::register_builtins(self);
        read_mode::register_builtins(self);
        compiler::register_builtins(self);
        addressing::register_builtins(self);
        stack_ops::register_builtins(self);
        equality::register_builtins(self);
        logic::register_builtins(self);
        conditionals::register_builtins(self);
        control_flow::register_builtins(self);
        math::register_builtins(self);
        string::register_builtins(self);
    }
}