zkvmc_interpreter/lib.rs
1mod backend;
2
3use backend::Interpreter;
4use zkvmc_context::Context;
5use zkvmc_frontend::Frontend;
6
7pub fn run<FE, const DEBUG: bool>(ctx: &mut Context) -> u32
8where
9 FE: for<'a> Frontend<Interpreter<'a, DEBUG>>,
10{
11 let mut interpreter = Interpreter::new(ctx);
12
13 loop {
14 FE::translate_one(&mut interpreter);
15 if let Some(code) = interpreter.ctx.exit_code {
16 return code;
17 }
18 interpreter.ctx.update_pc();
19 }
20}