From 758730d25db055ff28f7b1f76d59b69d85047795 Mon Sep 17 00:00:00 2001 From: Vincent Ambo Date: Sat, 27 Feb 2021 22:15:04 +0200 Subject: feat(tazjin/rlox): Print compiled bytecode with disassemble feature Change-Id: I42293b334248b5228dd90f13b9a400ccdca20a84 Reviewed-on: https://cl.tvl.fyi/c/depot/+/2562 Reviewed-by: tazjin Tested-by: BuildkiteCI --- users/tazjin/rlox/src/bytecode/chunk.rs | 7 +++++++ users/tazjin/rlox/src/bytecode/compiler/mod.rs | 4 ++++ 2 files changed, 11 insertions(+) diff --git a/users/tazjin/rlox/src/bytecode/chunk.rs b/users/tazjin/rlox/src/bytecode/chunk.rs index 649aafcfd8..b2a7c7b6a2 100644 --- a/users/tazjin/rlox/src/bytecode/chunk.rs +++ b/users/tazjin/rlox/src/bytecode/chunk.rs @@ -84,3 +84,10 @@ pub fn disassemble_instruction(chunk: &Chunk, offset: usize) { op => println!("{:?}", op), } } + +#[cfg(feature = "disassemble")] +pub fn disassemble_chunk(chunk: &Chunk) { + for (idx, _) in chunk.code.iter().enumerate() { + disassemble_instruction(chunk, idx); + } +} diff --git a/users/tazjin/rlox/src/bytecode/compiler/mod.rs b/users/tazjin/rlox/src/bytecode/compiler/mod.rs index 58a5c1b98a..547c1ab18f 100644 --- a/users/tazjin/rlox/src/bytecode/compiler/mod.rs +++ b/users/tazjin/rlox/src/bytecode/compiler/mod.rs @@ -219,6 +219,10 @@ impl> Compiler { fn end_compiler(&mut self) -> LoxResult<()> { self.emit_op(OpCode::OpReturn); + + #[cfg(feature = "disassemble")] + chunk::disassemble_chunk(&self.chunk); + Ok(()) } -- cgit 1.4.1