diff --git a/include/xo/reader/define_xs.hpp b/include/xo/reader/define_xs.hpp index 58846f33..5d7a0639 100644 --- a/include/xo/reader/define_xs.hpp +++ b/include/xo/reader/define_xs.hpp @@ -75,9 +75,7 @@ namespace xo { defexprstatetype defxs_type() const { return defxs_type_; } bool admits_rightparen() const; - //bool admits_colon() const; - bool admits_semicolon() const; - + //bool admits_semicolon() const; //bool admits_symbol() const; // virtual void on_f64(..) override diff --git a/src/reader/define_xs.cpp b/src/reader/define_xs.cpp index c3b977a2..9a6fe858 100644 --- a/src/reader/define_xs.cpp +++ b/src/reader/define_xs.cpp @@ -25,30 +25,6 @@ namespace xo { def_expr_{std::move(def_expr)} {} - bool - define_xs::admits_semicolon() const { - switch (defxs_type_) { - - case defexprstatetype::def_0: - case defexprstatetype::def_1: - case defexprstatetype::def_2: - case defexprstatetype::def_3: - case defexprstatetype::def_4: - case defexprstatetype::def_5: - return false; - case defexprstatetype::def_6: - return true; - - case defexprstatetype::invalid: - case defexprstatetype::n_defexprstatetype: - /* unreachable */ - assert(false); - return false; - } - - return false; - } - bool define_xs::admits_rightparen() const { switch (defxs_type_) { @@ -228,21 +204,14 @@ namespace xo { } void - define_xs::on_semicolon_token(const token_type & /*tk*/, + define_xs::on_semicolon_token(const token_type & tk, 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_semicolon"; - - if (!this->admits_semicolon()) - { - throw std::runtime_error(tostr(self_name, - ": unexpected semicolon for parsing state", - xtag("state", *this))); - } + //constexpr const char * self_name = "exprstate::on_semicolon"; if (this->defxs_type_ == defexprstatetype::def_6) { rp expr = this->def_expr_; @@ -253,7 +222,7 @@ namespace xo { p_stack, p_emit_expr); } else { - assert(false); + exprstate::on_semicolon_token(tk, p_stack, p_emit_expr); } }