xo-reader: refactor: simplify expect_expr_xs api

This commit is contained in:
Roland Conybeare 2024-08-18 23:53:06 -04:00
commit 9a42f02f0c
5 changed files with 15 additions and 9 deletions

View file

@ -312,7 +312,7 @@ namespace xo {
this->op_type_ = tk2op(tk.tk_type());
/* infix operator must be followed by non-empty expression */
p_stack->push_exprstate(expect_expr_xs::expect_rhs_expression());
expect_expr_xs::start(p_stack);
} else if (rhs_) {
/* already have complete expression stashed.
* behavior depends on operator precedence for tk with stored operator
@ -341,7 +341,7 @@ namespace xo {
p_stack->push_exprstate(progress_xs::make(expr, op2));
/* infix operator must be followed by non-empty expression */
p_stack->push_exprstate(expect_expr_xs::expect_rhs_expression());
expect_expr_xs::start(p_stack);
} else {
/* e.g.
* 6.2 + 4.9 * ...
@ -360,9 +360,9 @@ namespace xo {
/* 1. replace with nested incomplete infix exprs */
p_stack->push_exprstate(progress_xs::make(lhs_, op_type_));
p_stack->push_exprstate(expect_expr_xs::expect_rhs_expression());
expect_expr_xs::start(p_stack);
p_stack->push_exprstate(progress_xs::make(rhs_, op2));
p_stack->push_exprstate(expect_expr_xs::expect_rhs_expression());
expect_expr_xs::start(p_stack);
}
} else {