xo-reader: refactor: streamline define_xs impl
This commit is contained in:
parent
e8e03f7b4c
commit
f432e950ab
1 changed files with 5 additions and 24 deletions
|
|
@ -56,34 +56,15 @@ namespace xo {
|
||||||
|
|
||||||
void
|
void
|
||||||
define_xs::on_symbol(const std::string & symbol_name,
|
define_xs::on_symbol(const std::string & symbol_name,
|
||||||
exprstatestack * /*p_stack*/,
|
exprstatestack * p_stack,
|
||||||
rp<Expression> * /*p_emit_expr*/)
|
rp<Expression> * p_emit_expr)
|
||||||
{
|
{
|
||||||
switch (this->defxs_type_) {
|
if (this->defxs_type_ == defexprstatetype::def_1) {
|
||||||
case defexprstatetype::def_0:
|
|
||||||
assert(false);
|
|
||||||
return;
|
|
||||||
|
|
||||||
case defexprstatetype::def_1:
|
|
||||||
this->defxs_type_ = defexprstatetype::def_2;
|
this->defxs_type_ = defexprstatetype::def_2;
|
||||||
this->def_expr_->assign_lhs_name(symbol_name);
|
this->def_expr_->assign_lhs_name(symbol_name);
|
||||||
//this->def_lhs_symbol_ = symbol_name;
|
|
||||||
|
|
||||||
return;
|
|
||||||
case defexprstatetype::def_2:
|
|
||||||
case defexprstatetype::def_3:
|
|
||||||
case defexprstatetype::def_4:
|
|
||||||
case defexprstatetype::def_5:
|
|
||||||
case defexprstatetype::def_6:
|
|
||||||
/* NOT IMPLEMENTED */
|
|
||||||
assert(false);
|
|
||||||
return;
|
|
||||||
|
|
||||||
case defexprstatetype::invalid:
|
|
||||||
case defexprstatetype::n_defexprstatetype:
|
|
||||||
/* unreachable */
|
|
||||||
assert(false);
|
|
||||||
return;
|
return;
|
||||||
|
} else {
|
||||||
|
exprstate::on_symbol(symbol_name, p_stack, p_emit_expr);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue