nova_interpreter/
lib.rs

1#![feature(let_chains, vec_into_raw_parts)]
2
3use engine::Engine;
4use primitives::add_memory_manipulation_builtins;
5
6use crate::utils::interner::Interner;
7
8pub mod engine;
9pub mod parser;
10pub mod primitives;
11pub mod utils;
12
13/// Creates an engine with some default builtins for memory
14/// manipulation
15pub fn engine_with_default_builtins() -> Engine {
16    let interner = Interner::<String>::default();
17
18    let mut engine = Engine::new(interner);
19
20    engine.with_builtins(&|builtins, interner| {
21        add_memory_manipulation_builtins(interner, builtins);
22    });
23
24    engine
25}