diff --git a/include/xo/reader/exprstate.hpp b/include/xo/reader/exprstate.hpp index 943b70bc..467d2eab 100644 --- a/include/xo/reader/exprstate.hpp +++ b/include/xo/reader/exprstate.hpp @@ -126,7 +126,9 @@ namespace xo { // ----- input methods ----- - virtual void on_def(exprstatestack * p_stack); + /** handle incoming 'def' token **/ + virtual void on_def_token(const token_type & tk, + exprstatestack * p_stack); /** handle incoming symbol token **/ virtual void on_symbol_token(const token_type & tk, exprstatestack * p_stack, diff --git a/include/xo/reader/paren_xs.hpp b/include/xo/reader/paren_xs.hpp index 8bf137b5..5992837a 100644 --- a/include/xo/reader/paren_xs.hpp +++ b/include/xo/reader/paren_xs.hpp @@ -40,9 +40,6 @@ namespace xo { virtual bool admits_rightparen() const override; virtual bool admits_f64() const override; - // virtual void on_f64(..) override - virtual void on_def(exprstatestack * p_stack) override; - virtual void on_expr(ref::brw expr, exprstatestack * p_stack, rp * p_emit_expr) override; @@ -53,6 +50,8 @@ namespace xo { exprstatestack * /*p_stack*/, rp * /*p_emit_expr*/) override; + virtual void on_def_token(const token_type & tk, + exprstatestack * p_stack) override; virtual void on_symbol_token(const token_type & tk, exprstatestack * p_stack, rp * p_emit_expr) override; diff --git a/include/xo/reader/progress_xs.hpp b/include/xo/reader/progress_xs.hpp index 3203a274..0a0516cf 100644 --- a/include/xo/reader/progress_xs.hpp +++ b/include/xo/reader/progress_xs.hpp @@ -31,9 +31,6 @@ namespace xo { virtual bool admits_rightparen() const override; virtual bool admits_f64() const override; - // virtual void on_f64(..) override - virtual void on_def(exprstatestack * p_stack) override; - virtual void on_expr(ref::brw expr, exprstatestack * p_stack, rp * p_emit_expr) override; @@ -43,6 +40,9 @@ namespace xo { virtual void on_typedescr(TypeDescr td, exprstatestack * /*p_stack*/, rp * /*p_emit_expr*/) override; + + virtual void on_def_token(const token_type & tk, + exprstatestack * p_stack) override; virtual void on_colon_token(const token_type & tk, exprstatestack * p_stack) override; virtual void on_semicolon_token(const token_type & tk, diff --git a/src/reader/exprstate.cpp b/src/reader/exprstate.cpp index 1a33a503..5227135c 100644 --- a/src/reader/exprstate.cpp +++ b/src/reader/exprstate.cpp @@ -320,7 +320,8 @@ namespace xo { } void - exprstate::on_def(exprstatestack * p_stack) { + exprstate::on_def_token(const token_type & /*tk*/, + exprstatestack * p_stack) { constexpr bool c_debug_flag = true; scope log(XO_DEBUG(c_debug_flag)); @@ -652,7 +653,7 @@ namespace xo { switch (tk.tk_type()) { case tokentype::tk_def: - this->on_def(p_stack); + this->on_def_token(tk, p_stack); return; case tokentype::tk_i64: diff --git a/src/reader/paren_xs.cpp b/src/reader/paren_xs.cpp index 5446cccb..20d7573d 100644 --- a/src/reader/paren_xs.cpp +++ b/src/reader/paren_xs.cpp @@ -73,7 +73,9 @@ namespace xo { } void - paren_xs::on_def(exprstatestack * /*p_stack*/) { + paren_xs::on_def_token(const token_type & /*tk*/, + exprstatestack * /*p_stack*/) + { constexpr const char * c_self_name = "paren_xs::on_def"; throw std::runtime_error(tostr(c_self_name, diff --git a/src/reader/progress_xs.cpp b/src/reader/progress_xs.cpp index bb51cf02..19df5489 100644 --- a/src/reader/progress_xs.cpp +++ b/src/reader/progress_xs.cpp @@ -43,7 +43,9 @@ namespace xo { progress_xs::admits_f64() const { return false; } void - progress_xs::on_def(exprstatestack * /*p_stack*/) { + progress_xs::on_def_token(const token_type & /*tk*/, + exprstatestack * /*p_stack*/) + { constexpr const char * self_name = "progress_xs::on_def"; /* nothing here - admits_definition unconditionally false */