From 51aef19d1ed245f72976ffb346d4e3b5e581c730 Mon Sep 17 00:00:00 2001 From: Roland Conybeare Date: Thu, 12 Mar 2026 20:40:35 -0500 Subject: [PATCH] xo-reader2: bugfix: gather inputs before pop --- xo-reader2/src/reader2/DProgressSsm.cpp | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/xo-reader2/src/reader2/DProgressSsm.cpp b/xo-reader2/src/reader2/DProgressSsm.cpp index e2b0d1a1..59317a78 100644 --- a/xo-reader2/src/reader2/DProgressSsm.cpp +++ b/xo-reader2/src/reader2/DProgressSsm.cpp @@ -410,17 +410,25 @@ namespace xo { * a + b * ... (a + (b * ...)) */ + obj lhs1 = lhs_; + optype op_type1 = op_type_; + obj rhs1 = rhs_; + + assert(lhs1); + assert(op_type1 != optype::invalid); + assert(rhs1); + p_psm->pop_ssm(); /* (a + ..) */ DProgressSsm::start(p_psm->parser_alloc(), - lhs_, - op_type_, + lhs1, + op_type1, p_psm); DExpectExprSsm::start(p_psm); /* (b * ..) */ DProgressSsm::start(p_psm->parser_alloc(), - rhs_, + rhs1, op_type2, p_psm); DExpectExprSsm::start(p_psm);