From 1a6908043b60b97807ea43a37c9b41e4331734cf Mon Sep 17 00:00:00 2001 From: Roland Conybeare Date: Thu, 8 Aug 2024 14:27:01 -0400 Subject: [PATCH] xo-reader: refactor: mv def-expr on_leftparen (noop) -> define_xs --- include/xo/reader/define_xs.hpp | 2 ++ src/reader/define_xs.cpp | 19 +++++++++++++++++++ 2 files changed, 21 insertions(+) diff --git a/include/xo/reader/define_xs.hpp b/include/xo/reader/define_xs.hpp index e32d47a8..f1e0e2c7 100644 --- a/include/xo/reader/define_xs.hpp +++ b/include/xo/reader/define_xs.hpp @@ -42,6 +42,8 @@ namespace xo { virtual void on_semicolon(exprstatestack * p_stack, rp * /*p_emit_expr*/) override; virtual void on_singleassign(exprstatestack * p_stack) override; + virtual void on_leftparen(exprstatestack * p_stack, + rp * /*p_emit_expr*/) override; private: /** diff --git a/src/reader/define_xs.cpp b/src/reader/define_xs.cpp index df468503..4c5b3cb4 100644 --- a/src/reader/define_xs.cpp +++ b/src/reader/define_xs.cpp @@ -501,6 +501,25 @@ namespace xo { assert(false); } } + + void + define_xs::on_leftparen(exprstatestack * /*p_stack*/, + rp * /*p_emit_expr*/) + { + constexpr bool c_debug_flag = true; + scope log(XO_DEBUG(c_debug_flag)); + + constexpr const char * self_name = "exprstate::on_leftparen"; + + if (!this->admits_leftparen()) + { + throw std::runtime_error(tostr(self_name, + ": unexpected leftparen '(' for parsing state", + xtag("state", *this))); + } + + assert(false); /* inserting this during refactor...? */ + } } /*namespace scm*/ } /*namespace xo*/