From 96c0bea2f54e4723f61878b5799ea272d3a715d8 Mon Sep 17 00:00:00 2001 From: Roland Conybeare Date: Mon, 19 Aug 2024 16:42:52 -0400 Subject: [PATCH] xo-reader: simplify expect_formal_xs, expect_symbol_xs --- include/xo/reader/expect_formal_xs.hpp | 2 +- include/xo/reader/expect_symbol_xs.hpp | 2 +- src/reader/define_xs.cpp | 2 +- src/reader/expect_formal_arglist_xs.cpp | 8 ++------ src/reader/expect_formal_xs.cpp | 6 +++--- src/reader/expect_symbol_xs.cpp | 4 ++-- 6 files changed, 10 insertions(+), 14 deletions(-) diff --git a/include/xo/reader/expect_formal_xs.hpp b/include/xo/reader/expect_formal_xs.hpp index 64663239..97d781ee 100644 --- a/include/xo/reader/expect_formal_xs.hpp +++ b/include/xo/reader/expect_formal_xs.hpp @@ -47,7 +47,7 @@ namespace xo { public: expect_formal_xs(); - static void start(exprstatestack * p_stack); + static void start(parserstatemachine * p_psm); virtual void on_symbol(const std::string & symbol_name, parserstatemachine * p_psm) override; diff --git a/include/xo/reader/expect_symbol_xs.hpp b/include/xo/reader/expect_symbol_xs.hpp index 63740aeb..be4df5e4 100644 --- a/include/xo/reader/expect_symbol_xs.hpp +++ b/include/xo/reader/expect_symbol_xs.hpp @@ -20,7 +20,7 @@ namespace xo { static std::unique_ptr make(); - static void start(exprstatestack * p_stack); + static void start(parserstatemachine * p_psm); virtual void on_symbol_token(const token_type & tk, parserstatemachine * p_psm) override; diff --git a/src/reader/define_xs.cpp b/src/reader/define_xs.cpp index 43d700b1..460d98d2 100644 --- a/src/reader/define_xs.cpp +++ b/src/reader/define_xs.cpp @@ -97,7 +97,7 @@ namespace xo { if (this->defxs_type_ == defexprstatetype::def_0) { this->defxs_type_ = defexprstatetype::def_1; - expect_symbol_xs::start(p_psm->p_stack_); + expect_symbol_xs::start(p_psm); } else { exprstate::on_def_token(tk, p_psm); } diff --git a/src/reader/expect_formal_arglist_xs.cpp b/src/reader/expect_formal_arglist_xs.cpp index 2f9f0fce..8e455413 100644 --- a/src/reader/expect_formal_arglist_xs.cpp +++ b/src/reader/expect_formal_arglist_xs.cpp @@ -52,12 +52,10 @@ namespace xo { expect_formal_arglist_xs::on_leftparen_token(const token_type & tk, parserstatemachine * p_psm) { - auto p_stack = p_psm->p_stack_; - if (farglxs_type_ == formalarglstatetype::argl_0) { this->farglxs_type_ = formalarglstatetype::argl_1a; /* TODO: refactor to have setup method on each exprstate */ - expect_formal_xs::start(p_stack); + expect_formal_xs::start(p_psm); } else { exprstate::on_leftparen_token(tk, p_psm); } @@ -79,11 +77,9 @@ namespace xo { expect_formal_arglist_xs::on_comma_token(const token_type & tk, parserstatemachine * p_psm) { - auto p_stack = p_psm->p_stack_; - if (farglxs_type_ == formalarglstatetype::argl_1b) { this->farglxs_type_ = formalarglstatetype::argl_1a; - expect_formal_xs::start(p_stack); + expect_formal_xs::start(p_psm); } else { exprstate::on_comma_token(tk, p_psm); } diff --git a/src/reader/expect_formal_xs.cpp b/src/reader/expect_formal_xs.cpp index 7bd8773d..e60b77b0 100644 --- a/src/reader/expect_formal_xs.cpp +++ b/src/reader/expect_formal_xs.cpp @@ -38,10 +38,10 @@ namespace xo { } void - expect_formal_xs::start(exprstatestack * p_stack) { - p_stack->push_exprstate(expect_formal_xs::make()); + expect_formal_xs::start(parserstatemachine * p_psm) { + p_psm->push_exprstate(expect_formal_xs::make()); - expect_symbol_xs::start(p_stack); + expect_symbol_xs::start(p_psm); } expect_formal_xs::expect_formal_xs() diff --git a/src/reader/expect_symbol_xs.cpp b/src/reader/expect_symbol_xs.cpp index 3c8bfd2d..930d12b0 100644 --- a/src/reader/expect_symbol_xs.cpp +++ b/src/reader/expect_symbol_xs.cpp @@ -15,9 +15,9 @@ namespace xo { } void - expect_symbol_xs::start(exprstatestack * p_stack) + expect_symbol_xs::start(parserstatemachine * p_psm) { - p_stack->push_exprstate(expect_symbol_xs::make()); + p_psm->push_exprstate(expect_symbol_xs::make()); } expect_symbol_xs::expect_symbol_xs()