From ce59f9726a03e6d85165b7f3cbe631c7d639bfe6 Mon Sep 17 00:00:00 2001 From: Kaikalii Date: Fri, 22 Dec 2023 06:37:10 -0500 Subject: [PATCH] add under get --- src/algorithm/invert.rs | 13 +++++++++++ src/run.rs | 48 ++++++++++++++++++++--------------------- 2 files changed, 37 insertions(+), 24 deletions(-) diff --git a/src/algorithm/invert.rs b/src/algorithm/invert.rs index f1e24bd36..f9ffb2556 100644 --- a/src/algorithm/invert.rs +++ b/src/algorithm/invert.rs @@ -244,6 +244,19 @@ pub(crate) fn under_instrs( &stash2!(Select, Unselect), &(Val, stash2!(Pick, Unpick)), &stash2!(Pick, Unpick), + &( + Val, + pat!( + Get, + (CopyToTempN(2), Get), + (PopTempN(1), Flip, PopTempN(1), Insert), + ), + ), + &pat!( + Get, + (CopyToTempN(2), Get), + (PopTempN(1), Flip, PopTempN(1), Insert), + ), &( Val, pat!( diff --git a/src/run.rs b/src/run.rs index 1398c970e..0606ac115 100644 --- a/src/run.rs +++ b/src/run.rs @@ -391,30 +391,30 @@ code: break; }; // Uncomment to debug - // for val in &self.rt.stack { - // print!("{:?} ", val); - // } - // println!(); - // if !self.rt.array_stack.is_empty() { - // print!("array: "); - // for val in &self.rt.array_stack { - // print!("{:?} ", val); - // } - // println!(); - // } - // if !self.rt.function_stack.is_empty() { - // println!("{} function(s)", self.rt.function_stack.len()); - // } - // for temp in enum_iterator::all::() { - // if !self.rt.temp_stacks[temp as usize].is_empty() { - // print!("{temp}: "); - // for val in &self.rt.temp_stacks[temp as usize] { - // print!("{:?} ", val); - // } - // println!(); - // } - // } - // println!(" {:?}", instr); + for val in &self.rt.stack { + print!("{:?} ", val); + } + println!(); + if !self.rt.array_stack.is_empty() { + print!("array: "); + for val in &self.rt.array_stack { + print!("{:?} ", val); + } + println!(); + } + if !self.rt.function_stack.is_empty() { + println!("{} function(s)", self.rt.function_stack.len()); + } + for temp in enum_iterator::all::() { + if !self.rt.temp_stacks[temp as usize].is_empty() { + print!("{temp}: "); + for val in &self.rt.temp_stacks[temp as usize] { + print!("{:?} ", val); + } + println!(); + } + } + println!(" {:?}", instr); if self.rt.time_instrs { formatted_instr = format!("{instr:?}");