xo-reader: refactor: simplify expect_symbol_xs api
This commit is contained in:
parent
8bff8adc57
commit
f8754913bb
4 changed files with 12 additions and 4 deletions
|
|
@ -18,7 +18,9 @@ namespace xo {
|
|||
public:
|
||||
expect_symbol_xs();
|
||||
|
||||
static std::unique_ptr<expect_symbol_xs> expect_symbol_expression();
|
||||
static std::unique_ptr<expect_symbol_xs> make();
|
||||
|
||||
static void start(exprstatestack * p_stack);
|
||||
|
||||
virtual void on_symbol_token(const token_type & tk,
|
||||
exprstatestack * p_stack,
|
||||
|
|
|
|||
|
|
@ -98,7 +98,7 @@ namespace xo {
|
|||
if (this->defxs_type_ == defexprstatetype::def_0) {
|
||||
this->defxs_type_ = defexprstatetype::def_1;
|
||||
|
||||
p_stack->push_exprstate(expect_symbol_xs::expect_symbol_expression());
|
||||
expect_symbol_xs::start(p_stack);
|
||||
} else {
|
||||
exprstate::on_def_token(tk, p_stack);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -49,7 +49,7 @@ namespace xo {
|
|||
this->farglxs_type_ = formalarglstatetype::argl_1a;
|
||||
/* TODO: refactor to have setup method on each exprstate */
|
||||
p_stack->push_exprstate(expect_formal_xs::make());
|
||||
p_stack->push_exprstate(expect_symbol_xs::expect_symbol_expression());
|
||||
expect_symbol_xs::start(p_stack);
|
||||
} else {
|
||||
exprstate::on_leftparen_token(tk, p_stack, p_emit_expr);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -8,10 +8,16 @@
|
|||
namespace xo {
|
||||
namespace scm {
|
||||
std::unique_ptr<expect_symbol_xs>
|
||||
expect_symbol_xs::expect_symbol_expression() {
|
||||
expect_symbol_xs::make() {
|
||||
return std::make_unique<expect_symbol_xs>(expect_symbol_xs());
|
||||
}
|
||||
|
||||
void
|
||||
expect_symbol_xs::start(exprstatestack * p_stack)
|
||||
{
|
||||
p_stack->push_exprstate(expect_symbol_xs::make());
|
||||
}
|
||||
|
||||
expect_symbol_xs::expect_symbol_xs()
|
||||
: exprstate(exprstatetype::expect_symbol)
|
||||
{}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue