xo-reader: + exprseq_xs.on_expr()

This commit is contained in:
Roland Conybeare 2024-08-09 20:01:22 -04:00
commit 372a86485f
3 changed files with 21 additions and 11 deletions

View file

@ -31,9 +31,12 @@ namespace xo {
// ----- victory methods -----
virtual void on_typedescr(TypeDescr /*td*/,
exprstatestack * /*p_stack*/,
rp<Expression> * /*p_emit_expr*/) override;
virtual void on_typedescr(TypeDescr td,
exprstatestack * p_stack,
rp<Expression> * p_emit_expr) override;
virtual void on_expr(ref::brw<Expression> expr,
exprstatestack * p_stack,
rp<Expression> * p_emit_expr) override;
};
} /*namespace scm*/

View file

@ -57,6 +57,21 @@ namespace xo {
assert(false);
return;
}
void
exprseq_xs::on_expr(ref::brw<Expression> expr,
exprstatestack * /*p_stack*/,
rp<Expression> * 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*/

View file

@ -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 */