From 5ac19124c2fa7872fcbf33f0b2f3b8dd43ec44a6 Mon Sep 17 00:00:00 2001 From: Sweetbread Date: Sun, 14 Jun 2026 03:48:00 +0300 Subject: [PATCH] fix: fix some shunting-yard realisation issues --- src/rpn.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/rpn.rs b/src/rpn.rs index 70f3edb..41576ca 100644 --- a/src/rpn.rs +++ b/src/rpn.rs @@ -20,14 +20,14 @@ pub fn to_rpn(tokens: Vec) -> Vec { Token::Number(_) => out_buf.push(t), Token::BracketOpen => act_buf.push(t), Token::BracketClose => { - while matches!(act_buf.last().unwrap(), Token::BracketOpen) { + while !matches!(act_buf.last().unwrap(), Token::BracketOpen) { out_buf.push(act_buf.pop().unwrap()); } act_buf.pop(); } _ => { if !act_buf.is_empty() { - while priority.get(&t).unwrap() < priority.get(act_buf.last().unwrap()).unwrap() { + while priority.get(&t).unwrap() <= priority.get(act_buf.last().unwrap()).unwrap() { out_buf.push(act_buf.pop().unwrap()); if act_buf.is_empty() { break; } }