1use crate::chunk::{Chunk, OpCode};
2
3pub fn disassemble_chunk(chunk: &Chunk, name: &str) {
4 println!("== {} ==", name);
5
6 for (i, opcode) in chunk.code.iter().enumerate() {
7 disassemble_instruction(chunk, opcode, i);
8 }
9}
10
11pub fn disassemble_instruction(chunk: &Chunk, opcode: &OpCode, offset: usize) {
12 let instruction = match opcode {
13 OpCode::Constant(idx) => format!("Constant {:0>#4} {}", idx, chunk.constants[*idx]),
14 _ => format!("{:?}", opcode),
15 };
16 println!("{:0>#4} {}", offset, instruction);
18}