From 3900e2a499df1d13339ac727fee01afd34ace3d8 Mon Sep 17 00:00:00 2001 From: Sam Anthony Date: Thu, 9 Feb 2023 15:51:31 -0330 Subject: fix bug: parsing empty buffer --- src/input.rs | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) (limited to 'src/input.rs') diff --git a/src/input.rs b/src/input.rs index 21edef7..59bf5b9 100644 --- a/src/input.rs +++ b/src/input.rs @@ -53,7 +53,9 @@ impl Calculator { } self.input_buffer.push(c); } else if let Ok(op) = Operator::parse(c) { - self.stack.push(self.input_buffer.parse::().unwrap()); + if self.input_buffer.len() > 0 { + self.stack.push(self.input_buffer.parse::().unwrap()); + } self.input_buffer = String::new(); self.perform_operation(op); } else { @@ -65,7 +67,9 @@ impl Calculator { // is empty, this simply pops from the stack into the input buffer. fn swap(&mut self) { if let Some(f) = self.stack.pop() { - self.stack.push(self.input_buffer.parse::().unwrap()); + if self.input_buffer.len() > 0 { + self.stack.push(self.input_buffer.parse::().unwrap()); + } self.input_buffer = format!("{}", f); } } -- cgit v1.2.3