From dbd2f69533b69e6cda48474c8246f383f0b1861a Mon Sep 17 00:00:00 2001 From: Roland Conybeare Date: Mon, 19 Aug 2024 11:46:46 -0400 Subject: [PATCH] xo-reader: parserstatemachine -> consolidate on_formal() args --- include/xo/reader/expect_formal_arglist_xs.hpp | 3 +-- include/xo/reader/exprstate.hpp | 3 +-- src/reader/expect_formal_arglist_xs.cpp | 5 ++--- src/reader/expect_formal_xs.cpp | 4 +++- src/reader/exprstate.cpp | 5 +++-- 5 files changed, 10 insertions(+), 10 deletions(-) diff --git a/include/xo/reader/expect_formal_arglist_xs.hpp b/include/xo/reader/expect_formal_arglist_xs.hpp index 7eef773d..5bf75a8f 100644 --- a/include/xo/reader/expect_formal_arglist_xs.hpp +++ b/include/xo/reader/expect_formal_arglist_xs.hpp @@ -58,8 +58,7 @@ namespace xo { virtual void on_leftparen_token(const token_type & tk, parserstatemachine * p_psm) override; virtual void on_formal(const rp & formal, - exprstatestack * p_stack, - rp * p_emit_expr) override; + parserstatemachine * p_psm) override; virtual void on_comma_token(const token_type & tk, parserstatemachine * p_psm) override; virtual void on_rightparen_token(const token_type & tk, diff --git a/include/xo/reader/exprstate.hpp b/include/xo/reader/exprstate.hpp index 3c5e2e6a..8a7cf0d4 100644 --- a/include/xo/reader/exprstate.hpp +++ b/include/xo/reader/exprstate.hpp @@ -110,8 +110,7 @@ namespace xo { /** update exprstate when expecting a formal parameter **/ virtual void on_formal(const rp & formal, - exprstatestack * p_stack, - rp * p_emit_expr); + parserstatemachine * p_psm); /** update expression when epecting a formal parameter list **/ virtual void on_formal_arglist(const std::vector> & argl, diff --git a/src/reader/expect_formal_arglist_xs.cpp b/src/reader/expect_formal_arglist_xs.cpp index dc400aeb..3dcd2c2e 100644 --- a/src/reader/expect_formal_arglist_xs.cpp +++ b/src/reader/expect_formal_arglist_xs.cpp @@ -64,14 +64,13 @@ namespace xo { void expect_formal_arglist_xs::on_formal(const rp & formal, - exprstatestack * p_stack, - rp * p_emit_expr) + parserstatemachine * p_psm) { if (farglxs_type_ == formalarglstatetype::argl_1a) { this->farglxs_type_ = formalarglstatetype::argl_1b; this->argl_.push_back(formal); } else { - exprstate::on_formal(formal, p_stack, p_emit_expr); + exprstate::on_formal(formal, p_psm); } } diff --git a/src/reader/expect_formal_xs.cpp b/src/reader/expect_formal_xs.cpp index 3455de23..24484b5b 100644 --- a/src/reader/expect_formal_xs.cpp +++ b/src/reader/expect_formal_xs.cpp @@ -91,7 +91,9 @@ namespace xo { rp var = Variable::make(result_.name(), result_.td()); - p_stack->top_exprstate().on_formal(var, p_stack, p_emit_expr); + parserstatemachine psm(p_stack, p_emit_expr); + + p_stack->top_exprstate().on_formal(var, &psm); } else { exprstate::on_typedescr(td, p_stack, p_emit_expr); } diff --git a/src/reader/exprstate.cpp b/src/reader/exprstate.cpp index c9d14c82..013f88a5 100644 --- a/src/reader/exprstate.cpp +++ b/src/reader/exprstate.cpp @@ -104,14 +104,15 @@ namespace xo { void exprstate::on_formal(const rp & formal, - exprstatestack * p_stack, - rp * /*p_emit_expr*/) + parserstatemachine * p_psm) { /* returning type description to something that wants it */ constexpr bool c_debug_flag = true; scope log(XO_DEBUG(c_debug_flag)); + auto p_stack = p_psm->p_stack_; + log && log(xtag("exstype", p_stack->top_exprstate().exs_type()));