evalms

Function evalms 

Source
pub fn evalms(env: &Env, e: Exp, ctx: &mut EvalCtx) -> Result<Val, NarjuError>
Expand description

Public evaluator entry point — drives the CK machine.

Consumes the input Exp so the top-level Rc wrap is a Rc::new, not a deep e.clone() then wrap. Callers (in repl::TopLevel and tests) already own their Exp after parse::lower, so they have no reason to keep a borrow alive past this call.

The Machine handles every Exp arm natively via the kont stack; there is no recursive baseline. External callers (and evalmsg) go through this entry point.