xo-reader: parserstatemachine -> consolidate on_symbol() args
This commit is contained in:
parent
370722b086
commit
355f73b2a1
9 changed files with 11 additions and 23 deletions
|
|
@ -78,8 +78,7 @@ namespace xo {
|
|||
exprstatestack * p_stack,
|
||||
rp<Expression> * p_emit_expr) override;
|
||||
virtual void on_symbol(const std::string & symbol_name,
|
||||
exprstatestack * p_stack,
|
||||
rp<Expression> * p_emit_expr) override;
|
||||
parserstatemachine * p_psm) override;
|
||||
virtual void on_typedescr(TypeDescr td,
|
||||
parserstatemachine * p_psm) override;
|
||||
virtual void on_def_token(const token_type & tk,
|
||||
|
|
|
|||
|
|
@ -50,8 +50,7 @@ namespace xo {
|
|||
static void start(exprstatestack * p_stack);
|
||||
|
||||
virtual void on_symbol(const std::string & symbol_name,
|
||||
exprstatestack * p_stack,
|
||||
rp<Expression> * p_emit_expr) override;
|
||||
parserstatemachine * p_psm) override;
|
||||
|
||||
virtual void on_colon_token(const token_type & tk,
|
||||
parserstatemachine * p_psm) override;
|
||||
|
|
|
|||
|
|
@ -100,8 +100,7 @@ namespace xo {
|
|||
|
||||
/** update exprstate when expecting a symbol **/
|
||||
virtual void on_symbol(const std::string & symbol,
|
||||
exprstatestack * p_stack,
|
||||
rp<Expression> * p_emit_expr);
|
||||
parserstatemachine * p_psm);
|
||||
|
||||
/** update exprstate when expeccting a typedescr **/
|
||||
virtual void on_typedescr(TypeDescr td,
|
||||
|
|
|
|||
|
|
@ -38,8 +38,7 @@ namespace xo {
|
|||
exprstatestack * p_stack,
|
||||
rp<Expression> * p_emit_expr) override;
|
||||
virtual void on_symbol(const std::string & symbol,
|
||||
exprstatestack * p_stack,
|
||||
rp<Expression> * p_emit_expr) override;
|
||||
parserstatemachine * p_psm) override;
|
||||
virtual void on_typedescr(TypeDescr td,
|
||||
parserstatemachine * p_psm) override;
|
||||
|
||||
|
|
|
|||
|
|
@ -59,15 +59,14 @@ namespace xo {
|
|||
|
||||
void
|
||||
define_xs::on_symbol(const std::string & symbol_name,
|
||||
exprstatestack * p_stack,
|
||||
rp<Expression> * p_emit_expr)
|
||||
parserstatemachine * p_psm)
|
||||
{
|
||||
if (this->defxs_type_ == defexprstatetype::def_1) {
|
||||
this->defxs_type_ = defexprstatetype::def_2;
|
||||
this->def_expr_->assign_lhs_name(symbol_name);
|
||||
return;
|
||||
} else {
|
||||
exprstate::on_symbol(symbol_name, p_stack, p_emit_expr);
|
||||
exprstate::on_symbol(symbol_name, p_psm);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -49,16 +49,13 @@ namespace xo {
|
|||
|
||||
void
|
||||
expect_formal_xs::on_symbol(const std::string & symbol_name,
|
||||
exprstatestack * p_stack,
|
||||
rp<Expression> * p_emit_expr)
|
||||
parserstatemachine * p_psm)
|
||||
{
|
||||
if (this->formalxs_type_ == formalstatetype::formal_0) {
|
||||
this->formalxs_type_ = formalstatetype::formal_1;
|
||||
this->result_.assign_name(symbol_name);
|
||||
} else {
|
||||
exprstate::on_symbol(symbol_name,
|
||||
p_stack,
|
||||
p_emit_expr);
|
||||
exprstate::on_symbol(symbol_name, p_psm);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -28,7 +28,6 @@ namespace xo {
|
|||
parserstatemachine * p_psm)
|
||||
{
|
||||
auto p_stack = p_psm->p_stack_;
|
||||
auto p_emit_expr = p_psm->p_emit_expr_;
|
||||
|
||||
/* have to do pop first, before sending symbol to
|
||||
* the o.g. symbol-requester
|
||||
|
|
@ -36,8 +35,7 @@ namespace xo {
|
|||
std::unique_ptr<exprstate> self = p_stack->pop_exprstate();
|
||||
|
||||
|
||||
p_stack->top_exprstate().on_symbol(tk.text(),
|
||||
p_stack, p_emit_expr);
|
||||
p_stack->top_exprstate().on_symbol(tk.text(), p_psm);
|
||||
return;
|
||||
}
|
||||
} /*namespace scm*/
|
||||
|
|
|
|||
|
|
@ -360,8 +360,7 @@ namespace xo {
|
|||
|
||||
void
|
||||
exprstate::on_symbol(const std::string & symbol_name,
|
||||
exprstatestack * /*p_stack*/,
|
||||
rp<Expression> * /*p_emit_expr*/)
|
||||
parserstatemachine * /*p_psm*/)
|
||||
{
|
||||
/* unreachable - derived class that can receive
|
||||
* will override this method
|
||||
|
|
|
|||
|
|
@ -207,8 +207,7 @@ namespace xo {
|
|||
|
||||
void
|
||||
paren_xs::on_symbol(const std::string & /*symbol_name*/,
|
||||
exprstatestack * /*p_stack*/,
|
||||
rp<Expression> * /*p_emit_expr*/)
|
||||
parserstatemachine * /*p_psm*/)
|
||||
{
|
||||
switch(this->parenxs_type_) {
|
||||
case parenexprstatetype::lparen_0:
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue