#![feature(let_chains, vec_into_raw_parts)]
use engine::Engine;
use primitives::add_memory_manipulation_builtins;
use crate::utils::interner::Interner;
pub mod engine;
pub mod parser;
pub mod primitives;
pub mod utils;
pub fn engine_with_default_builtins() -> Engine {
let interner = Interner::<String>::default();
let mut engine = Engine::new(interner);
engine.with_builtins(&|builtins, interner| {
add_memory_manipulation_builtins(interner, builtins);
});
engine
}