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
13pub 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}