mod backend;
use backend::Interpreter;
use zkvmc_context::Context;
use zkvmc_frontend::Frontend;
pub fn run<FE, const DEBUG: bool>(ctx: &mut Context) -> u32
where
FE: for<'a> Frontend<Interpreter<'a, DEBUG>>,
{
let mut interpreter = Interpreter::new(ctx);
loop {
FE::translate_one(&mut interpreter);
if let Some(code) = interpreter.ctx.exit_code {
return code;
}
interpreter.ctx.update_pc();
}
}