diff --git a/include/xo/reader/exprstate.hpp b/include/xo/reader/exprstate.hpp index fb541cd9..e36972fa 100644 --- a/include/xo/reader/exprstate.hpp +++ b/include/xo/reader/exprstate.hpp @@ -63,7 +63,7 @@ namespace xo { return os; } - class parserstatemachine; + class parserstatemachine; /* see parserstatemachine.hpp */ class exprstatestack; class formal_arg; @@ -91,8 +91,7 @@ namespace xo { * forward instructions to parent parser **/ void on_input(const token_type & tk, - exprstatestack * p_stack, - rp * p_emit_expr); + parserstatemachine * p_psm); /** update exprstate in response to a successfully-parsed subexpression **/ virtual void on_expr(ref::brw expr, diff --git a/src/reader/exprstate.cpp b/src/reader/exprstate.cpp index 71f0eb50..d5f72881 100644 --- a/src/reader/exprstate.cpp +++ b/src/reader/exprstate.cpp @@ -247,20 +247,20 @@ namespace xo { void exprstate::on_input(const token_type & tk, - exprstatestack * p_stack, - rp * p_emit_expr) + parserstatemachine * p_psm) { constexpr bool c_debug_flag = true; scope log(XO_DEBUG(c_debug_flag)); log && log(xtag("tk", tk)); log && log(xtag("state", *this)); - parserstatemachine psm(p_stack, p_emit_expr); + auto p_stack = p_psm->p_stack_; + auto p_emit_expr = p_psm->p_emit_expr_; switch (tk.tk_type()) { case tokentype::tk_def: - this->on_def_token(tk, &psm); + this->on_def_token(tk, p_psm); return; case tokentype::tk_lambda: