diff --git a/include/xo/reader/exprseq_xs.hpp b/include/xo/reader/exprseq_xs.hpp index 6ea8ff21..d6afffe8 100644 --- a/include/xo/reader/exprseq_xs.hpp +++ b/include/xo/reader/exprseq_xs.hpp @@ -31,9 +31,12 @@ namespace xo { // ----- victory methods ----- - virtual void on_typedescr(TypeDescr /*td*/, - exprstatestack * /*p_stack*/, - rp * /*p_emit_expr*/) override; + virtual void on_typedescr(TypeDescr td, + exprstatestack * p_stack, + rp * p_emit_expr) override; + virtual void on_expr(ref::brw expr, + exprstatestack * p_stack, + rp * p_emit_expr) override; }; } /*namespace scm*/ diff --git a/src/reader/exprseq_xs.cpp b/src/reader/exprseq_xs.cpp index 48c69fbd..502f129f 100644 --- a/src/reader/exprseq_xs.cpp +++ b/src/reader/exprseq_xs.cpp @@ -57,6 +57,21 @@ namespace xo { assert(false); return; } + + void + exprseq_xs::on_expr(ref::brw expr, + exprstatestack * /*p_stack*/, + rp * p_emit_expr) + { + /* toplevel expression sequence accepts an + * arbitrary number of expressions. + * + * parser::include_token() returns + */ + + *p_emit_expr = expr.promote(); + } /*on_expr*/ + } /*namespace scm*/ } /*namespace xo*/ diff --git a/src/reader/exprstate.cpp b/src/reader/exprstate.cpp index 7fa30923..052488bf 100644 --- a/src/reader/exprstate.cpp +++ b/src/reader/exprstate.cpp @@ -680,14 +680,6 @@ namespace xo { switch (this->exs_type_) { case exprstatetype::expect_toplevel_expression_sequence: - /* toplevel expression sequence accepts an - * arbitrary number of expressions. - * - * parser::include_token() returns - */ - - *p_emit_expr = expr.promote(); - return; case exprstatetype::defexpr: case exprstatetype::parenexpr: /* unreachable. redirects to define_xs::on_expr() etc */