zkvmc-interpreter 0.0.1

zkVMc interpreter
Documentation
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();
    }
}