use cagire_forth::{Dictionary, ExecutionTrace, Forth, Rng, StepContext, Value, Variables}; pub struct ScriptEngine { forth: Forth, } impl ScriptEngine { pub fn new(vars: Variables, dict: Dictionary, rng: Rng) -> Self { Self { forth: Forth::new(vars, dict, rng), } } pub fn evaluate(&self, script: &str, ctx: &StepContext) -> Result, String> { self.forth.evaluate(script, ctx) } pub fn evaluate_with_trace( &self, script: &str, ctx: &StepContext, trace: &mut ExecutionTrace, ) -> Result, String> { self.forth.evaluate_with_trace(script, ctx, trace) } pub fn stack(&self) -> Vec { self.forth.stack() } }