xo-reader: + exprseq_xs.on_expr()
This commit is contained in:
parent
cf3448bc82
commit
372a86485f
3 changed files with 21 additions and 11 deletions
|
|
@ -31,9 +31,12 @@ namespace xo {
|
||||||
|
|
||||||
// ----- victory methods -----
|
// ----- victory methods -----
|
||||||
|
|
||||||
virtual void on_typedescr(TypeDescr /*td*/,
|
virtual void on_typedescr(TypeDescr td,
|
||||||
exprstatestack * /*p_stack*/,
|
exprstatestack * p_stack,
|
||||||
rp<Expression> * /*p_emit_expr*/) override;
|
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*/
|
} /*namespace scm*/
|
||||||
|
|
|
||||||
|
|
@ -57,6 +57,21 @@ namespace xo {
|
||||||
assert(false);
|
assert(false);
|
||||||
return;
|
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 scm*/
|
||||||
} /*namespace xo*/
|
} /*namespace xo*/
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -680,14 +680,6 @@ namespace xo {
|
||||||
|
|
||||||
switch (this->exs_type_) {
|
switch (this->exs_type_) {
|
||||||
case exprstatetype::expect_toplevel_expression_sequence:
|
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::defexpr:
|
||||||
case exprstatetype::parenexpr:
|
case exprstatetype::parenexpr:
|
||||||
/* unreachable. redirects to define_xs::on_expr() etc */
|
/* unreachable. redirects to define_xs::on_expr() etc */
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue