xo-reader: refactor: simplify paren_xs api

This commit is contained in:
Roland Conybeare 2024-08-19 00:27:35 -04:00
commit 6a71f718bd
2 changed files with 5 additions and 3 deletions

View file

@ -29,7 +29,7 @@ namespace xo {
static const paren_xs * from(const exprstate * x) { return dynamic_cast<const paren_xs *>(x); } static const paren_xs * from(const exprstate * x) { return dynamic_cast<const paren_xs *>(x); }
static std::unique_ptr<paren_xs> lparen_0(); static void start(exprstatestack * p_stack);
bool admits_f64() const; bool admits_f64() const;
bool admits_rightparen() const; bool admits_rightparen() const;
@ -68,6 +68,9 @@ namespace xo {
virtual void print(std::ostream & os) const override; virtual void print(std::ostream & os) const override;
private:
static std::unique_ptr<paren_xs> make();
private: private:
/** /**
* ( foo ... ) * ( foo ... )

View file

@ -57,8 +57,7 @@ namespace xo {
//constexpr const char * self_name = "exprstate::on_leftparen"; //constexpr const char * self_name = "exprstate::on_leftparen";
/* push lparen_0 to remember to look for subsequent rightparen. */ /* push lparen_0 to remember to look for subsequent rightparen. */
p_stack->push_exprstate(paren_xs::lparen_0()); paren_xs::start(p_stack);
expect_expr_xs::start(p_stack);
} }
void void