diff --git a/src/reader2/DProgressSsm.cpp b/src/reader2/DProgressSsm.cpp index e2b0d1a1..59317a78 100644 --- a/src/reader2/DProgressSsm.cpp +++ b/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);